ডার্ট কি গণনা সমর্থন করে? এই ক্ষেত্রে:
enum myFruitEnum { Apple, Banana }
দস্তাবেজগুলির একটি অভিসম্পূর্ণ অনুসন্ধান নং-এর প্রস্তাব দেয়।
ডার্ট কি গণনা সমর্থন করে? এই ক্ষেত্রে:
enum myFruitEnum { Apple, Banana }
দস্তাবেজগুলির একটি অভিসম্পূর্ণ অনুসন্ধান নং-এর প্রস্তাব দেয়।
উত্তর:
১.৮ থেকে শুরু করে আপনি এ জাতীয় এনাম ব্যবহার করতে পারেন:
enum Fruit {
apple, banana
}
main() {
var a = Fruit.apple;
switch (a) {
case Fruit.apple:
print('it is an apple');
break;
}
// get all the values of the enums
for (List<Fruit> value in Fruit.values) {
print(value);
}
// get the second value
print(Fruit.values[1]);
}
1.8 এর আগে পুরানো পদ্ধতির:
class Fruit {
static const APPLE = const Fruit._(0);
static const BANANA = const Fruit._(1);
static get values => [APPLE, BANANA];
final int value;
const Fruit._(this.value);
}
শ্রেণীর মধ্যে থাকা স্থিতিশীল ধ্রুবকগুলি সংকলনের সময় ধ্রুবক এবং এই শ্রেণিটি এখন ব্যবহার করা যেতে পারে, উদাহরণস্বরূপ, switch
বিবৃতি:
var a = Fruit.APPLE;
switch (a) {
case Fruit.APPLE:
print('Yes!');
break;
}
const
সর্বদা সম্ভব নয় (যদি এনামগুলি এমন বৈশিষ্ট্যগুলি দিয়ে তৈরি করা যায় যা নাও হতে পারে const
)। এজন্য আমি আমার উত্তরে এটি ব্যবহার করি নি (যদিও আমি মাঝে মাঝে const
আমার কোডটিতে এনাম ব্যবহার করি)।
List<Fruit> value
?
for (Fruit value in Fruit.values)
, অন্যথায় ডার্ট একটি ত্রুটি দেখায়
R41815 এর সাথে ডার্ট নেটিভ এনাম সাপোর্ট পেয়েছে দেখুন http://dartbug.com/21416 এবং এর মতো ব্যবহার করা যেতে পারে
enum Status {
none,
running,
stopped,
paused
}
void main() {
print(Status.values);
Status.values.forEach((v) => print('value: $v, index: ${v.index}'));
print('running: ${Status.running}, ${Status.running.index}');
print('running index: ${Status.values[1]}');
}
[স্ট্যাটাস.নোন, স্ট্যাটাস.আরুনিং, স্ট্যাটাস.স্টপড, স্ট্যাটাস.পেজড]
মান: স্ট্যাটাস.নোন, ইনডেক্স: 0
মান: স্ট্যাটাস.আরানিং, ইনডেক্স: 1
মান: স্ট্যাটাস.স্টপড, ইনডেক্স: 2
মান: স্ট্যাটাস.পেজ, সূচক: 3
চলমান: স্থিতি.আরুনিং, 1
চলমান সূচক: স্থিতি.আরুনিং ning
একটি সীমাবদ্ধতা হ'ল এনুম আইটেমটির জন্য কাস্টম মানগুলি সেট করা সম্ভব নয়, সেগুলি স্বয়ংক্রিয়ভাবে নম্বরযুক্ত।
এই খসড়াটিতে আরও বিশদ https://www.dartlang.org/docs/spec/EnumsTC52draft.pdf
এই এবং এই আপনার প্রশ্নে উত্তর হতে পারে:
... for the technology preview it was decided to leave it out and just
use static final fields for now. It may be added later.
আপনি এখনও এর মতো কিছু করতে পারেন:
interface ConnectionState { }
class Connected implements ConnectionState { }
class Connecting implements ConnectionState { }
class Disconnected implements ConnectionState { }
//later
ConnectionState connectionState;
if (connectionState is Connecting) { ... }
যা আমার মতে ব্যবহারের জন্য আরও স্পষ্ট। অ্যাপ্লিকেশন কাঠামোর প্রোগ্রামিংয়ের জন্য এটি কিছুটা বেশি কঠিন, তবে কিছু ক্ষেত্রে এটি আরও ভাল এবং পরিষ্কার।
ভবিষ্যতে গণনা পাওয়া উচিত। তবে এনুম অবতরণ না করা পর্যন্ত আপনি এর মতো কিছু করতে পারেন:
class Fruit {
static final APPLE = new Fruit._();
static final BANANA = new Fruit._();
static get values => [APPLE, BANANA];
Fruit._();
}
এই পদ্ধতি সম্পর্কে:
class FruitEnums {
static const String Apple = "Apple";
static const String Banana = "Banana";
}
class EnumUsageExample {
void DoSomething(){
var fruit = FruitEnums.Apple;
String message;
switch(fruit){
case(FruitEnums.Apple):
message = "Now slicing $fruit.";
break;
default:
message = "Now slicing $fruit via default case.";
break;
}
}
}
Fruit.APPLE
। তারপরে যদি আমি পাঠ্য আউটপুট চাইতাম তবে আমার কাছে একটি মানচিত্র রয়েছে যা তাদের অনুবাদ করে বা কিছু ভাষা সমর্থন আলাদাভাবে অন্য ভাষাগুলিকে সমর্থন করতে চাইলে। আমি আরও মনে করি যে switch
বিবৃতিগুলি পূর্ণসংখ্যার উপরে সবচেয়ে ভাল কাজ করে, কারণ তারপরে সেগুলি একটি লাফ টেবিলে সংকলিত হতে পারে।
হ্যাঁ! ডার্টে এনামগুলি করতে এটি আসলে খুব দরকারী:
enum fruits{
BANANA, APPLE, ORANGE
}
টাইপ ক্লাস ফাইল ব্যবহার করুন।
সহজ, দ্রুত, আরও শক্তিশালী এবং আরও সহায়ক।
সামান্য সমস্যা, এটি এই শ্রেণিটি পাঁচটি পৃথক পছন্দ এবং নাল হিসাবে কাজ করার জন্য প্লাস একের মধ্যে সীমাবদ্ধ।