Dart-এ Type Inference হলো একটি প্রক্রিয়া যেখানে কম্পাইলার স্বয়ংক্রিয়ভাবে ভেরিয়েবলের টাইপ নির্ধারণ করে, যখন আপনি টাইপ স্পষ্টভাবে উল্লেখ করেন না।
অর্থাৎ, আপনি যদি একটি ভেরিয়েবল ডিক্লেয়ার করেন এবং তার সাথে ডাটা অ্যাসাইন করেন, তাহলে Dart নিজেই ঐ ডাটার উপর ভিত্তি করে টাইপ নির্ধারণ করে।
উদাহরণ:
void main() {
var name = "Amirul"; // এখানে `name` এর টাইপ `String` হিসেবে নির্ধারণ হবে
var age = 25; // এখানে `age` এর টাইপ `int` হিসেবে নির্ধারণ হবে
var pi = 3.14; // এখানে `pi` এর টাইপ `double` হিসেবে নির্ধারণ হবে
print(name.runtimeType); // Output: String
print(age.runtimeType); // Output: int
print(pi.runtimeType); // Output: double
}
কীভাবে কাজ করে:
-
var
ব্যবহার: যখন আপনিvar
দিয়ে একটি ভেরিয়েবল ডিক্লেয়ার করেন, তখন কম্পাইলার সেই ভেরিয়েবলের জন্য অ্যাসাইন করা ডাটার টাইপ বিশ্লেষণ করে।
var x = 10; // এখানে `x` একটি `int` টাইপ ভেরিয়েবল
-
final
এবংconst
ব্যবহার:final
এবংconst
-এর ক্ষেত্রেও টাইপ ইনফারেন্স কাজ করে।
final city = "Dhaka"; // টাইপ `String` হিসেবে ইনফার করা হবে
const pi = 3.1416; // টাইপ `double` হিসেবে ইনফার করা হবে
- ফাংশনের রিটার্ন টাইপ: যদি কোনো ফাংশনের রিটার্ন টাইপ স্পষ্টভাবে উল্লেখ করা না হয়, তবে Dart ইনফারেন্স ব্যবহার করে টাইপ নির্ধারণ করে।
addNumbers(a, b) {
return a + b; // টাইপ ইনফারেন্সের ভিত্তিতে এটি `int` বা `double` হতে পারে
}
সুবিধা:
- কোড সংক্ষিপ্ত ও পরিষ্কার হয়।
- টাইপ ম্যানেজমেন্ট সহজ হয়।
- টাইপ নির্ধারণে কম সময় লাগে।
সতর্কতা:
- যদি ডাটা টাইপ স্পষ্ট না হয় বা কনফ্লিক্ট হয়, তাহলে এটি সমস্যার কারণ হতে পারে।
var value; // টাইপ এখনও নির্ধারণ করা হয়নি
value = "Flutter"; // এখানে `String` টাইপ নির্ধারণ হবে
value = 123; // এর ফলে টাইপ কনফ্লিক্ট হতে পারে
পরামর্শ:
- যেখানে সম্ভব, টাইপ স্পষ্টভাবে উল্লেখ করুন, বিশেষত বড় প্রজেক্টে।
-
dynamic
টাইপ এড়িয়ে চলুন, কারণ এটি টাইপ সেফটি কমিয়ে দিতে পারে।
Top comments (0)