
рд▓рдЧрд╛рддрд╛рд░ рдХреЗрд╡рд▓ final
рдЪрд░ рдХрд╛ рдПрдХ рдЕрдЬреАрдм рд╕рдВрд╕реНрдХрд░рдг рдирд╣реАрдВ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рд╕рдкрдиреЗ рдореЗрдВ рдЙрдирд╕реЗ рдЬреБрдбрд╝реА рд╕рднреА рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╕реЗ рдкрд░реЗрд╢рд╛рди рдХрд░реЗрдЧрд╛ред Compile-time
рд╕реНрдерд┐рд░рд╛рдВрдХ рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╣реИ, рдПрдХ рд╣реА рд╡рд╕реНрддреБ рдХреЛ рдХрдИ рдмрд╛рд░ рдмрдирд╛рдП рдмрд┐рдирд╛, рдФрд░ рдЗрд╕рд▓рд┐рдП рд╕рдВрдХрд▓рди рд╕рдордп рдкрд░ "рдкреВрд░реНрд╡-рдирд┐рд░реНрдорд╛рдг" рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдмреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдПред
const рдпрд╛ рдЕрдВрддрд┐рдо?
, , . , , const
final
. .
void run() {
const myConstNumber = 5;
final myFinalNumber = 5;
myConstNumber = 42;
myFinalNumber = 42;
}
final
, const
, . , const
.
class MyClass {
final int myFinalField;
const int myConstField;
MyClass(this.myFinalField, this.myConstField);
}
, , final
, const
. , , (. ). ...
Dart . , "hello"
, , 3.14
, , .
, .
void run() {
const myList = [1, 2, 3];
const myMap = {'one': 1};
const mySet = {1, 2, 3};
}
: , if, spread
, .
, const
final
, , . Dart , , . .

, , , . , .
void run() {
final finalVariable = 123456;
const constVariable = 123456;
const notWorking = finalVariable;
const working = constVariable;
}
, тАУ , , , ...
Flutter const
, , EdgeInsets, . - , .
const EdgeInsets.all(8)
, . , const
, .
, const
. : final
.
class MyConstClass {
final int field1;
final List<String> field2;
const MyConstClass(this.field1, this.field2);
}
void run() {
const constVariable = 123456;
const x = MyConstClass(constVariable, ['hello', 'there']);
}
, , const
.
class MyWannabeConstClass {
final Future<int> field;
const MyWannabeConstClass(this.field);
}
void run() {
const x = MyWannabeConstClass(Future.value(123));
}
Dart , , , ""? , . const
, . .
void run() {
final implicitNew = MyWannabeConstClass(Future.value(123));
final explicitNew = new MyWannabeConstClass(Future.value(123));
}
const
, , , Flutter .
, const
final
.
, new
, const
.
void run() {
const implicitConst = MyConstClass(1);
const explicitConst = const MyConstClass(1);
}
const
, , , .
void run() {
final regularVariable = const MyConstClass(1);
}
рдирд┐рд╖реНрдХрд░реНрд╖
рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛ const
рдбрд╛рд░реНрдЯ рдореЗрдВ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░реНрд╕ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ, рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЗ рдЕрд░реНрде рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИ ред const
рдЬрд╣рд╛рдБ рд╕рдВрднрд╡ рд╣реЛ, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ , рдФрд░ рдЖрдк рдЕрдкрдиреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рд▓рд╛рдЗрди рджреНрд╡рд╛рд░рд╛ рдЫреЛрдЯреЗ рдкреНрд░рджрд░реНрд╢рди рд╕реБрдзрд╛рд░ рдХрд░реЗрдВрдЧреЗред рдФрд░ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЫреЛрдЯреЗ рд╕реБрдзрд╛рд░ рдХреЗ рд╕рд╛рде рдпрд╣ рдХреИрд╕реЗ рд╣реЛрддрд╛ рд╣реИ - рд╡реЗ рдПрдХ рд╕рдордЧреНрд░ рдкрд░рд┐рдгрд╛рдо рджреЗрддреЗ рд╣реИрдВред