Size: a a a

Dart & Flutter по-русски

2021 April 15

KB

Kirill Bubochkin in Dart & Flutter по-русски
но у вас в любом случае в Feature1 поля, а не константы, поэтому в switch оно не будет работать
источник

at

alexey tracevsky in Dart & Flutter по-русски
ну, тут вопрос был не про как сделать
а про то, почему у const класса поля не считаются const
источник

KB

Kirill Bubochkin in Dart & Flutter по-русски
потому что поля – это не константы. Поля принадлежат экземпляру класса.
источник

at

alexey tracevsky in Dart & Flutter по-русски
а зачем тогда ввели const экземпляры класса?
источник

K

Korpag in Dart & Flutter по-русски
Вопрос: Тяну изображение из API с помощью json. Можно ли как-то на получаемое изображение накинуть"фильтр", или еще что-то, дабы придать кадру эффект приставок 90-х(аля 8-16-bit)?
источник

at

alexey tracevsky in Dart & Flutter по-русски
feature1 будет объектом и поля все одно будут final, static const поля по экземпляру не достанешь
источник

KB

Kirill Bubochkin in Dart & Flutter по-русски
весь класс может быть константой, например вот так можно:

abstract class Strings {
 const Strings._();
 
 static const feature1 = Feature1();
}

class Feature1 {
 const Feature1({
   this.text1 = 'x',
   this.text2 = 'y',
 });
 final String text1;
 final String text2;
}

void main() {
 final Feature1 t = Strings.feature1;
 switch (t){
   case Strings.feature1:
     print('t is x');
     break;
   default:
     print('t is not x');
 }
}
источник

M

Mitai in Dart & Flutter по-русски
Я вот до этой темы думал что стал не много понимать в Дарте, видимо нет...
источник

EE

Evgenii <JonFir&g... in Dart & Flutter по-русски
до какой?)
источник

D

Dima in Dart & Flutter по-русски
Толькл смисла в етом я не вижу
источник

KB

Kirill Bubochkin in Dart & Flutter по-русски
это просто пример того, как класс как константу можно использовать
источник

EE

Evgenii <JonFir&g... in Dart & Flutter по-русски
так виджеты же константой делать прямо в доке рекомендуют)
источник

EE

Evgenii <JonFir&g... in Dart & Flutter по-русски
что бы вес приложения рос, но не тратить время на создание объектов))
источник

KB

Kirill Bubochkin in Dart & Flutter по-русски
если вам нужен более наглядный пример, пусть будет так:

abstract class Strings {
 const Strings._();
 
 static const feature1 = Feature1();
 static const feature2 = Feature2();
}

abstract class Feature {}

class Feature1 implements Feature {
 const Feature1({
   this.text1 = 'x',
   this.text2 = 'y',
 });
 final String text1;
 final String text2;
}

class Feature2 implements Feature {
 const Feature2();
}

void main() {
 final Feature t = Strings.feature1;
 switch (t){
   case Strings.feature1:
     print('t is feature1’);
     break;
   case Strings.feature2:
     print('t is feature2’);
     break;
   default:
     print('t is not x');
 }
}
источник

SM

Sam Mejl in Dart & Flutter по-русски
Друзья, мы начинаем нашу встречу! Подключайтесь. Задавайте вопросы.
источник

at

alexey tracevsky in Dart & Flutter по-русски
вы так и не ответили на мой вопрос, вы говорите потому что там final а не const в объявлении поля.
но когда мы создаем const объект класса, на него накладываются определенные ограничения(все поля final, значениями могут быть лишь другие const объекты или результат вычисления между const литералами), сам объект является compile-time константой, но при этом его поля почему-то не считаются константами.
вопрос стоит, почему?
источник

at

alexey tracevsky in Dart & Flutter по-русски
источник

P

ParanoyaU in Dart & Flutter по-русски
Перевод с доки не совсем понял. Можете подсказать, что делает rethrow? Обработать исключение, и в случае чего снова ее выбросить, или что?
источник

P

ParanoyaU in Dart & Flutter по-русски
источник

at

alexey tracevsky in Dart & Flutter по-русски
да
источник