Size: a a a

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

2020 December 13

AD

Alexandr Drobyshev in Dart & Flutter по-русски
хотя риторический - невреное слово)) просто интересно
источник

M

Max in Dart & Flutter по-русски
У любого выбора при разработке языка есть свои причины, хотя они и не всегда очевидны.

В данном случае, к счастью, всё просто. Конструктор A(this.a) возвращает экземпляр класса A. Который не является экземпляром класса B. Возможность вызвать его для класса B подразумевает неявный Type Casting, который противоречит явности типов (soundness), которую декларирует и поддерживает Dart.

Система типов в PHP - странное явление, когда типизация "приделывается сбоку" к уже существующему языку, и неявный кастинг типов - меньшая из её проблем (а так же - неизбежное зло при таком подходе)
источник

V

Vadim in Dart & Flutter по-русски
Alexandr Drobyshev
мое мнение что есть класс, у него есть методы, конструкторы... дальше есть наследник, но вот свойства он наследует и методы, а конструктор нет( я просто считаю что тут было бы удобней если бы наследовал.

простите, что я такой гад так считаю.
просто наследование конструторов имхо не есть "косяк". или что-то что ограничивает разработчика.
Вот висит пока одиноко https://github.com/dart-lang/sdk/issues/9468
источник

M

Max in Dart & Flutter по-русски
Вадим
Господа, подскажите такую вещь
Есть какая-то разница для производительности, между const конструктором и нет?
Например const SizedBox() и SizedBox()
Бесконечная. const SizedBox выполняется в компайл-тайме и вообще не затрагивает рантайм)
источник

В

Вадим in Dart & Flutter по-русски
и лучше использовать const, если есть возможность?
источник

M

Max in Dart & Flutter по-русски
Да, но эта возможность есть довольно редко - все параметры должны быть известны в компайл-тайме, то есть быть тоже const
источник

AD

Alexandr Drobyshev in Dart & Flutter по-русски
висит... там в dart.io висит куча иссуев о том что куки криво собирает либа ивисят они с 2015 года, и всем пофиг, хотя там надо только 1 строку убрать и все ок) но всем пофиг кто пишет ту либу) так что мне кажется мнение простых смертных таких как я никого не волнует)
источник

В

Вадим in Dart & Flutter по-русски
Max
Да, но эта возможность есть довольно редко - все параметры должны быть известны в компайл-тайме, то есть быть тоже const
ну const SizedBox(width: 16)
такие вот вещи
источник

M

Max in Dart & Flutter по-русски
Вадим
ну const SizedBox(width: 16)
такие вот вещи
Да, идеальное место для применения const. У тебя там всегда 16, тебе не нужно считать это в рантайме.
источник

V

Vadim in Dart & Flutter по-русски
Alexandr Drobyshev
висит... там в dart.io висит куча иссуев о том что куки криво собирает либа ивисят они с 2015 года, и всем пофиг, хотя там надо только 1 строку убрать и все ок) но всем пофиг кто пишет ту либу) так что мне кажется мнение простых смертных таких как я никого не волнует)
может потому-что из тысяч разабов нужно десятерым?
но в любом случае, он же опенсорсный если горит, и одна строчка, в чем проблема?
источник

AD

Alexandr Drobyshev in Dart & Flutter по-русски
Max
Бесконечная. const SizedBox выполняется в компайл-тайме и вообще не затрагивает рантайм)
а почему тогда тут сработало
источник

AD

Alexandr Drobyshev in Dart & Flutter по-русски
с const конструктором? там же передача пришедшух с сети данных, я не догоняю видимо как const работает)
источник

В

Вадим in Dart & Flutter по-русски
Alexandr Drobyshev
а почему тогда тут сработало
потому что поля final
источник

M

Max in Dart & Flutter по-русски
Alexandr Drobyshev
а почему тогда тут сработало
Потому что компилятор Dart умеет игнорировать Const в тех ситуациях, когда он неприменим.
источник

V

Vadim in Dart & Flutter по-русски
Alexandr Drobyshev
висит... там в dart.io висит куча иссуев о том что куки криво собирает либа ивисят они с 2015 года, и всем пофиг, хотя там надо только 1 строку убрать и все ок) но всем пофиг кто пишет ту либу) так что мне кажется мнение простых смертных таких как я никого не волнует)
ну и у C++11 добавили возможность наследования конструкторов, так что еще не все потеряно))
источник

AD

Alexandr Drobyshev in Dart & Flutter по-русски
Vadim
может потому-что из тысяч разабов нужно десятерым?
но в любом случае, он же опенсорсный если горит, и одна строчка, в чем проблема?
ну как бы с 15 года и они закрывают иссуи эти) и там месяц анзад штук 15 открытых висело на эту же тему, просто не понятно зачем они так сдлеали и почему закрывают))

суть в том тчо они куки соединяют все пришедшие запятой, а запятая может приходить еще внутри куки, и распаарсить потом надо регулярками, подгонять под свой случай))
источник

AD

Alexandr Drobyshev in Dart & Flutter по-русски
Вадим
потому что поля final
ну финал это ж не этам компиляции, тут ка кбы не к финал вопрос)
ну ок я понял что он игнорит
источник

M

Max in Dart & Flutter по-русски
Alexandr Drobyshev
с const конструктором? там же передача пришедшух с сети данных, я не догоняю видимо как const работает)
В данном случае - описаны константные конструкторы. Если их вызвать с константными аргументами - они создадут константные экземпляры. Если с динамическими - обычные.
источник

AD

Alexandr Drobyshev in Dart & Flutter по-русски
понятно, спасибо. просто вчера когда делал, удивило немного почему сработало)
но я в релизе не тестил)
источник

M

Max in Dart & Flutter по-русски
Но да, это возможно только с final-полями, по понятным причнам.
источник