Middle
Dartта const ачкыч сөзүн колдонуу жолдору кандай?
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) |
Нақлингизга ўзгартириш мумкин бўлмаган объект яратади |
| Коллекциялар учун қўлланиш | Ўзгартирилмайдиган коллекция яратади, мазмуни ўзгартирилмайди | Ўзгартирилмайдиган коллекцияга ишора қилади (мазмуни ўзгартирилиши мумкин) |