1. Home
  2. Flutter
  3. introduction-and-basics
  4. ০ ২। Dart প্রোগ্রামিং ভাষার মৌলিক বিষয়সমূহ

০ ২। Dart প্রোগ্রামিং ভাষার মৌলিক বিষয়সমূহ

বেশ, আসুন আমরা পরবর্তী পার্টে যাই। এটি হবে Dart প্রোগ্রামিং ভাষার মৌলিক বিষয়সমূহ নিয়ে।

পার্ট 2: Dart প্রোগ্রামিং ভাষার মৌলিক বিষয়সমূহ

  1. Dart ভাষা পরিচিতি:

a) Dart কি?

  1. Google দ্বারা ডেভেলপ করা একটি অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং ভাষা
  2. Flutter ফ্রেমওয়ার্কের মূল ভাষা
  3. ওয়েব, মোবাইল, ডেস্কটপ অ্যাপ্লিকেশন ডেভেলপমেন্টে ব্যবহৃত

b) Dart-এর বৈশিষ্ট্য:

  1. স্ট্রংলি টাইপড
  2. গার্বেজ কালেকশন
  3. রিচ স্ট্যান্ডার্ড লাইব্রেরি
  4. অ্যাসিঙ্ক্রোনাস প্রোগ্রামিং সাপোর্ট
  5. ভেরিয়েবল ও ডাটা টাইপ:

a) ভেরিয়েবল ডিক্লেয়ার:

var name = 'John'; // টাইপ ইনফার্ড
String surname = 'Doe'; // এক্সপ্লিসিট টাইপ
final age = 30; // রানটাইমে ইনিশিয়ালাইজড, পরে চেঞ্জ করা যাবে না
const PI = 3.14159; // কম্পাইল টাইমে ইনিশিয়ালাইজড

b) বেসিক ডাটা টাইপ:

int number = 42;
double price = 9.99;
String message = 'Hello';
bool isTrue = true;

c) ডাইনামিক টাইপ:

dynamic value = 'Can be anything';
value = 42; // Valid
  1. কন্ট্রোল ফ্লো স্টেটমেন্ট:

a) if-else:

if (condition) {
  // code
} else if (anotherCondition) {
  // code
} else {
  // code
}

b) for লুপ:

for (var i = 0; i < 5; i++) {
  print(i);
}

c) while লুপ:

while (condition) {
  // code
}

d) switch-case:

switch (variable) {
  case value1:
    // code
    break;
  case value2:
    // code
    break;
  default:
    // code
}
  1. ফাংশন:

a) বেসিক ফাংশন:

int add(int a, int b) {
  return a + b;
}

b) অপশনাল প্যারামিটার:

void greet(String name, [String? title]) {
  print('Hello ${title ?? ''} $name');
}

c) নেমড প্যারামিটার:

void introduce({required String name, int? age}) {
  print('I am $name${age != null ? ' and I am $age years old' : ''}');
}

d) অ্যারো ফাংশন:

var multiply = (int a, int b) => a * b;
  1. কালেকশন:

a) লিস্ট:

List<int> numbers = [1, 2, 3, 4, 5];
numbers.add(6);
print(numbers[0]); // 1

b) সেট:

Set<String> uniqueNames = {'Alice', 'Bob', 'Charlie'};
uniqueNames.add('Alice'); // Won't be added (duplicate)

c) ম্যাপ:

Map<String, int> ages = {
  'Alice': 30,
  'Bob': 25,
  'Charlie': 35,
};
print(ages['Bob']); // 25
  1. ক্লাস ও অবজেক্ট:

a) ক্লাস ডিফাইন:

class Person {
  String name;
  int age;

  Person(this.name, this.age);

  void introduce() {
    print('I am $name and I am $age years old');
  }
}

b) অবজেক্ট ক্রিয়েট:

var person = Person('John', 30);
person.introduce();

c) ইনহেরিটেন্স:

class Student extends Person {
  String school;

  Student(String name, int age, this.school) : super(name, age);

  @override
  void introduce() {
    super.introduce();
    print('I study at $school');
  }
}
  1. নাল সেফটি:

a) নাল-অ্যাওয়ার অপারেটর (?.):

String? name;
print(name?.toUpperCase()); // null

b) নাল-কোলেসিং অপারেটর (??):

String? input;
String result = input ?? 'Default';
  1. অ্যাসিঙ্ক্রোনাস প্রোগ্রামিং:

a) Future:

Future<String> fetchData() async {
  await Future.delayed(Duration(seconds: 2));
  return 'Data fetched';
}

b) async-await:

void main() async {
  print('Fetching data...');
  String result = await fetchData();
  print(result);
}
  1. এক্সেপশন হ্যান্ডলিং:
try {
  int result = 12 ~/ 0; // IntegerDivisionByZeroException
} on IntegerDivisionByZeroException {
  print('Cannot divide by zero');
} catch (e) {
  print('An error occurred: $e');
} finally {
  print('This always executes');
}
  1. কাস্টম অপারেটর:
class Vector {
  final int x, y;
  Vector(this.x, this.y);

  Vector operator +(Vector v) => Vector(x + v.x, y + v.y);
  Vector operator *(int scalar) => Vector(x * scalar, y * scalar);
}

এই পার্টে আমরা Dart প্রোগ্রামিং ভাষার মৌলিক বিষয়গুলো দেখলাম। এই জ্ঞান আপনাকে Flutter অ্যাপ্লিকেশন ডেভেলপমেন্টের জন্য একটি শক্তিশালী ভিত্তি দেবে। পরবর্তী পার্টে আমরা Flutter উইজেট পরিচিতি নিয়ে আলোচনা করব, যেখানে আমরা এই Dart কনসেপ্টগুলো ব্যবহার করে Flutter UI তৈরি করব।

How can we help?