როგორ შეიძლება გამოიყენოთ საკვანძო სიტყვა const Dart-ში?
sobes.tech AI
პასუხი AI-სგან
Dart тилиндеги const сўзи мустаҳкам қийматлар яратиш учун қўлланилади, улар компиляция вақтида аниқланади ва дастур ишга туширилганда ўзгартирилмайди.
Ишлатиш усуллари:
-
Ўзгарувчи модификатор сифатида: Компиляция вақтида мустаҳкам бўлган ўзгарувчини эълон қилиш учун қўлланилади.
const int speedOfLight = 299792458; // Мустаҳкам қиймат -
Конструктор модификатор сифатида:
constдеб эълон қилинган конструктор, агар унинг барча майдонлариfinalёкиconstбўлса, ўзгартирилмайдиган класс нусхаларини яратади.class Point { final double x; final double y; const Point(this.x, this.y); // Мустаҳкам конструктор } const origin = Point(0.0, 0.0); // Мустаҳкам нусха яратиш -
Мустаҳкам тўпламлар яратиш учун: Листлар, тўпламлар ва хариталар яратиш учун, уларнинг мазмуни компиляция вақтида мустаҳкам бўлади.
const List<int> primeNumbers = [2, 3, 5, 7, 11]; // Мустаҳкам рўйхат const Set<String> constants = {'pi', 'e', 'phi'}; // Мустаҳкам тўплам const Map<String, double> mathConstants = { 'pi': 3.14159, 'e': 2.71828 }; // Мустаҳкам харита -
Flutterда, қайсида мустаҳкам қиймат кутилса: Масалан, Flutterда виджетлар яратишда, мустаҳкам виджетлар оптимизацияланиши мумкин.
// Flutterда const Text('Hello, World!'); // Мустаҳкам виджет
final-дан фарқлари:
constқийматни, компиляция вақтида маълум бўлган қийматни белгилайди.finalқийматни, фақат бир марта ишга туширилганда белгиланади ва кейин ўзгартирилмайди.
| Хусусиятлар | const |
final |
|---|---|---|
| Инициализация вақти | Компиляция вақти | Ишга тушириш вақти (бир марта) |
| Ўзгартириш имконияти | Ўзгартирилмайди | Бир марта белгиланган, кейин ўзгартирилмайди |
| Нусхага қўлланиш | Мустаҳкам нусха яратади (агар конструктор const) |
Нақлингизга ўзгартириш мумкин бўлмаган объект яратади |
| Коллекциялар учун қўлланиш | Ўзгартирилмайдиган коллекция яратади, мазмуни ўзгартирмайди | Ўзгартирилмайдиган коллекцияга ишора қилади (мазмуни ўзгартирилиши мумкин) |