Dart Programming Task Challenge এবং প্রশ্নসমূহের ব্যাখ্যা
এই ডকুমেন্টে আমরা Dart প্রোগ্রামিং ল্যাঙ্গুয়েজের বিভিন্ন বিষয় ধাপে ধাপে ব্যাখ্যা করবো। প্রতিটি বিষয় বাংলায় বিস্তারিতভাবে আলোচনা করা হবে যাতে আপনি সহজে বুঝতে পারেন।
1. Dart Introduction
Dart হলো একটি ওপেন সোর্স প্রোগ্রামিং ল্যাঙ্গুয়েজ যা গুগল তৈরি করেছে। এটি মূলত ওয়েব এবং মোবাইল অ্যাপ্লিকেশন ডেভেলপমেন্টের জন্য ব্যবহৃত হয়, বিশেষ করে Flutter ফ্রেমওয়ার্কের সাথে। Dart একটি অবজেক্ট-ওরিয়েন্টেড ল্যাঙ্গুয়েজ যা C-স্টাইল সিনট্যাক্স ব্যবহার করে।
2. Environment Setup
Dart প্রোগ্রামিং শুরু করতে আপনাকে প্রথমে Dart SDK ইনস্টল করতে হবে। এটি আপনার কম্পিউটারে Dart কোড রান করার জন্য প্রয়োজনীয় টুলস সরবরাহ করে। আপনি Dart-এর অফিসিয়াল ওয়েবসাইট থেকে SDK ডাউনলোড করতে পারেন। এছাড়া IntelliJ IDEA বা VS Code এর মতো IDE ব্যবহার করলে Dart প্রোগ্রামিং আরও সহজ হয়।
3. Dart Hello World
Dart-এ প্রথম প্রোগ্রাম হিসেবে "Hello World" প্রিন্ট করা খুব সহজ। শুধু main() ফাংশনের ভিতরে print('Hello World'); লিখতে হবে।উদাহরণ:
void main() {
print('Hello World');
}
4. Dart Project Structure In IntelliJ Idea
IntelliJ IDEA-তে Dart প্রজেক্ট তৈরি করলে সাধারণত নিম্নলিখিত স্ট্রাকচার থাকে:
bin/ বা lib/ ফোল্ডার: এখানে আপনার Dart ফাইল থাকে।
pubspec.yaml: প্রজেক্টের ডিপেন্ডেন্সি এবং কনফিগারেশন ধারণ করে।
test/ ফোল্ডার: টেস্ট কোড এখানে থাকে।
5. Dart Keywords And Syntax
Dart-এ বিভিন্ন কীওয়ার্ড আছে, যেমন var, final, const, class, void, if, else, for, while
ইত্যাদি। এর সিনট্যাক্স C বা Java-এর মতো, যেখানে স্টেটমেন্ট সেমিকোলন (;) দিয়ে শেষ হয় এবং ব্লক কার্লি ব্রেস ({}) দিয়ে ঘেরা থাকে।
6. Dart Variable
Dart-এ ভেরিয়েবল ডিক্লেয়ার করতে var কীওয়ার্ড ব্যবহার করা হয়। আপনি চাইলে টাইপও উল্লেখ করতে পারেন, যেমন int, String।উদাহরণ:
var name = 'John';
int age = 25;
7. Dart Data Types & Numbers
Dart-এ প্রধান ডাটা টাইপগুলো হলো:
- - int: পূর্ণসংখ্যা (যেমন 5, 10)
- - double: দশমিক সংখ্যা (যেমন 3.14)
- - String: টেক্সট
- - bool: সত্য/মিথ্যা
- - List: অ্যারে
- - Map: কী-ভ্যালু পেয়ার
8. String And Boolean
String: টেক্সট ডাটা, একক বা ডাবল কোট দিয়ে ঘেরা।
Boolean: true বা false।উদাহরণ:
String greeting = 'Hello';
bool isTrue = true;
9. Dart List
List হলো একই টাইপের ডাটার সংগ্রহ। এটি গ্রোয়েবল বা ফিক্সড লেংথ হতে পারে।উদাহরণ:
List numbers = [1, 2, 3, 4];
10. Dart Map
Map হলো কী-ভ্যালু পেয়ারের সংগ্রহ।উদাহরণ:
Map ages = {'John': 25, 'Jane': 30};
11. Dart Operators
Dart-এ বিভিন্ন অপারেটর আছে:
- অ্যারিথমেটিক: +, -, *, /, %
- কম্পারিজন: ==, !=, >, <, >=, <=
- লজিক্যাল: &&, ||, !
- অ্যাসাইনমেন্ট: =, +=, -= ইত্যাদি
12. Example of Arithmetic Operator
অ্যারিথমেটিক অপারেটর দিয়ে গণনা করা যায়।উদাহরণ:
int a = 10;
int b = 5;
int sum = a + b; // 15
int product = a * b; // 50
13. Example of Unary Operator
ইউনারি অপারেটর একটি অপারেন্ডের উপর কাজ করে, যেমন ++, --, -।উদাহরণ:
int x = 5;
x++; // x = 6
x--; // x = 5
int y = -x; // y = -5
14. Dart Constant
কনস্ট্যান্ট ভেরিয়েবলের মান পরিবর্তন করা যায় না। final এবং const ব্যবহার করা হয়।উদাহরণ:
final int maxAge = 100;
const double pi = 3.14;
15. List Properties
List-এর কিছু প্রপার্টি আছে, যেমন length, isEmpty, isNotEmpty।উদাহরণ:
List numbers = [1, 2, 3];
print(numbers.length); // 3
print(numbers.isEmpty); // false
16. Fixed Length List Growable List
Fixed Length: সাইজ পরিবর্তন করা যায় না।
Growable: সাইজ পরিবর্তন করা যায়।উদাহরণ:
List fixedList = List.filled(3, 0); // [0, 0, 0]
List growableList = [1, 2, 3];
growableList.add(4); // [1, 2, 3, 4]
17. List Insert Items
List-এ আইটেম যোগ করতে add() বা insert() ব্যবহার করা হয়।উদাহরণ:
List numbers = [1, 2, 3];
numbers.add(4); // [1, 2, 3, 4]
numbers.insert(1, 5); // [1, 5, 2, 3, 4]
18. Dart List Remove Update
Remove: remove() বা removeAt() দিয়ে আইটেম মুছে ফেলা।
Update: ইনডেক্স দিয়ে আপডেট করা।উদাহরণ:
List numbers = [1, 2, 3, 4];
numbers.remove(2); // [1, 3, 4]
numbers[1] = 5; // [1, 5, 4]
19. Dart Set With Add And AddAll
Set হলো ইউনিক আইটেমের সংগ্রহ। add() এবং addAll() দিয়ে যোগ করা হয়।উদাহরণ:
Set numbers = {1, 2, 3};
numbers.add(4); // {1, 2, 3, 4}
numbers.addAll([5, 6]); // {1, 2, 3, 4, 5, 6}
20. Set Element At and Clear
Set-এ নির্দিষ্ট ইনডেক্সে আইটেম অ্যাক্সেস বা আপডেট করা যায় না। clear() দিয়ে খালি করা যায়।উদাহরণ:
Set numbers = {1, 2, 3};
numbers.clear(); // {}
21. Set Properties
Set-এর প্রপার্টি যেমন length, isEmpty, contains()।উদাহরণ:
Set numbers = {1, 2, 3};
print(numbers.length); // 3
print(numbers.contains(2)); // true
22. Map Add New Element
Map-এ নতুন এলিমেন্ট যোগ করতে [] বা putIfAbsent() ব্যবহার করা হয়।উদাহরণ:
Map ages = {'John': 25};
ages['Jane'] = 30; // {'John': 25, 'Jane': 30}
23. Map Constructor And Properties
Map তৈরি করতে কনস্ট্রাক্টর ব্যবহার করা হয়। প্রপার্টি যেমন keys, values, length।উদাহরণ:
Map ages = Map();
ages['John'] = 25;
print(ages.keys); // (John)
print(ages.values); // (25)
24. Map Add Remove Clear
Add: নতুন এলিমেন্ট যোগ।
Remove: remove() দিয়ে মুছে ফেলা।
Clear: clear() দিয়ে খালি করা।উদাহরণ:
Map ages = {'John': 25, 'Jane': 30};
ages['Doe'] = 35; // যোগ
ages.remove('John'); // রিমুভ
ages.clear(); // খালি
25. Dart Control Flow Statement Overview
কন্ট্রোল ফ্লো স্টেটমেন্ট যেমন if, else, switch, for, while, do-while প্রোগ্রামের এক্সিকিউশন নিয়ন্ত্রণ করে।
26. If Else Statements
if এবং else দিয়ে কন্ডিশন চেক করা হয়।উদাহরণ:
int age = 18;
if (age >= 18) {
print('Adult');
} else {
print('Minor');
}
27. Switch Case Statement
switch দিয়ে একাধিক কন্ডিশন চেক করা হয়।উদাহরণ:
String fruit = 'apple';
switch (fruit) {
case 'apple':
print('Apple');
break;
case 'banana':
print('Banana');
break;
default:
print('Unknown');
}
28. For Loop
for লুপ দিয়ে নির্দিষ্ট সংখ্যক বার কোড রান করা হয়।উদাহরণ:
for (int i = 0; i < 5; i++) {
print(i);
}
29. For In Loop Over List
for-in লুপ দিয়ে List-এর প্রতিটি এলিমেন্ট অ্যাক্সেস করা হয়।উদাহরণ:
List numbers = [1, 2, 3];
for (int num in numbers) {
print(num);
}
30. For In Loop Over Set And Json List
Set এবং JSON List-এর উপরও for-in লুপ ব্যবহার করা যায়।উদাহরণ:
Set numbers = {1, 2, 3};
for (int num in numbers) {
print(num);
}
31. While And do While Loop
While: কন্ডিশন সত্য হলে চলে।
Do-While: অন্তত একবার চলে, তারপর কন্ডিশন চেক করে।উদাহরণ:
int i = 0;
while (i < 5) {
print(i);
i++;
}
do {
print(i);
i++;
} while (i < 10);
32. Function Define And Call
ফাংশন ডিফাইন করতে returnType functionName(parameters) ব্যবহার করা হয়। কল করতে functionName(arguments)।উদাহরণ:
void greet(String name) {
print('Hello, $name');
}
greet('John');
33. Passing Argument Inside Function
ফাংশনে আর্গুমেন্ট কল করার সময় পাস করা হয়।উদাহরণ:
int add(int a, int b) {
return a + b;
}
int result = add(3, 5); // 8
34. Function Return And Main Function
return দিয়ে ফাংশন থেকে ভ্যালু ফেরানো হয়। main() হলো প্রোগ্রামের এন্ট্রি পয়েন্ট।উদাহরণ:
void main() {
int sum = add(3, 5);
print(sum);
}
int add(int a, int b) {
return a + b;
}
35. OOP Concept And Class
OOP-তে ক্লাস, অবজেক্ট, ইনহেরিটেন্স ইত্যাদি Dart-এ ব্যবহৃত হয়।উদাহরণ:
class Person {
String name;
int age;
}
36. Access Properties From Class
ক্লাসের প্রপার্টি অ্যাক্সেস করতে অবজেক্ট তৈরি করে ডট (.) ব্যবহার করা হয়।উদাহরণ:
Person p = Person();
p.name = 'John';
p.age = 25;
print(p.name); // John
37. Access Static Properties from Class
স্ট্যাটিক প্রপার্টি ক্লাসের নাম দিয়ে অ্যাক্সেস করা হয়।উদাহরণ:
class Math {
static int max = 100;
}
print(Math.max); // 100
38. Details On Class Constructor
কনস্ট্রাক্টর অবজেক্ট তৈরির সময় স্বয়ংক্রিয়ভাবে কল হয়।উদাহরণ:
class Person {
String name;
int age;
Person(this.name, this.age);
}
Person p = Person('John', 25);
39. Dart This Keyword
this বর্তমান অবজেক্টকে রেফার করে।উদাহরণ:
class Person {
String name;
void setName(String name) {
this.name = name;
}
}
40. Inheritance Concepts
ইনহেরিটেন্স দিয়ে এক ক্লাস অন্য ক্লাসের প্রপার্টি উত্তরাধিকার সূত্রে পায়।উদাহরণ:
class Animal {
void eat() {
print('Eating');
}
}
class Dog extends Animal {
void bark() {
print('Barking');
}
}
Dog d = Dog();
d.eat(); // Eating
d.bark(); // Barking
41. Method Overriding
সাবক্লাসে সুপারক্লাসের মেথড নতুন করে ডিফাইন করা।উদাহরণ:
class Animal {
void sound() {
print('Animal sound');
}
}
class Dog extends Animal {
@override
void sound() {
print('Barking');
}
}
Dog d = Dog();
d.sound(); // Barking
42. Dart Abstract
অ্যাবস্ট্রাক্ট ক্লাস থেকে অবজেক্ট তৈরি করা যায় না, শুধু ইনহেরিট করা যায়।উদাহরণ:
abstract class Shape {
void draw();
}
class Circle extends Shape {
@override
void draw() {
print('Drawing circle');
}
}
43. Dart Debugging
Dart-এ ডিবাগিং করতে IDE-তে ব্রেকপয়েন্ট সেট করা, ভেরিয়েবলের মান দেখা, স্টেপ বাই স্টেপ এক্সিকিউশন ইত্যাদি ফিচার ব্যবহার করা হয়।
এই ছিল Dart প্রোগ্রামিং-এর বিভিন্ন বিষয়ের বিস্তারিত ব্যাখ্যা। আশা করি এটি আপনার জন্য সহায়ক হবে।