Size: a a a

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

2021 March 21

Р

Руслан in Dart & Flutter по-русски
Евгений Баладжа
У меня тотальное понимание дженериков. Есть тип List, и у него есть  конструктор List(), и так далее. Только дарт не умеет работать с конструкторами, наследовать их, обобщать их.
Придется короче билдер передавать вместе с дженерик-параметром, вполне в духе флаттера)))
<T> t =<T>  так нельзя?
источник

G

Gray in Dart & Flutter по-русски
Евгений Баладжа
У меня тотальное понимание дженериков. Есть тип List, и у него есть  конструктор List(), и так далее. Только дарт не умеет работать с конструкторами, наследовать их, обобщать их.
Придется короче билдер передавать вместе с дженерик-параметром, вполне в духе флаттера)))
Совниваюсь, что есть языки где можно создавать объект с типа дженеретика
источник

SH

Sergey Hottabych in Dart & Flutter по-русски
Т — это "любой тип".
Ты как бы говоришь: "Создай любой тип".
Дарт говорит: "Чего ты от меня хочешь?".
источник

AP

Andrei Pavlov in Dart & Flutter по-русски
Gray
Совниваюсь, что есть языки где можно создавать объект с типа дженеретика
c#
источник

E

Emilia in Dart & Flutter по-русски
Gray
Совниваюсь, что есть языки где можно создавать объект с типа дженеретика
В Java рефлексией можно
источник

E

Emilia in Dart & Flutter по-русски
На рантайме узнать класс T, потом newInstance
источник

G

Gray in Dart & Flutter по-русски
Emilia
На рантайме узнать класс T, потом newInstance
Точно, что-то такое вспоминаю
источник

ЕБ

Евгений Баладжа... in Dart & Flutter по-русски
Sergey Hottabych
Т — это "любой тип".
Ты как бы говоришь: "Создай любой тип".
Дарт говорит: "Чего ты от меня хочешь?".
Ну, в моем примере на T наложен констрейнт, хотя, проблема понятна, конструкторы в основном требуют параметров, а для специального случая "дефолтный конструктор без параметров" разработчики дарта просто не захотели заморачиваться.
источник

AP

Andrei Pavlov in Dart & Flutter по-русски
Евгений Баладжа
Дурацкий фундаментальный вопрос про дарт. Создал обобщенный класс:
class MyClass2<T extends MyClass1> {...}
А могу ли я внутри этого класса-2 каким-то образом создать объект класса T, например, предполагая наличие у него дефолтного конструктора?
T t = new T();
Такая конструкция не работает.
Как взрослые дяди решают эту проблему?
class foo<T> {
   void foo(T Function() creator) {
       final t = creator();
   }
}
источник

ЕБ

Евгений Баладжа... in Dart & Flutter по-русски
Andrei Pavlov
class foo<T> {
   void foo(T Function() creator) {
       final t = creator();
   }
}
Да, спасибо, я так и планировал, по сути передаю билдер нужного типа!
источник

ЕБ

Евгений Баладжа... in Dart & Flutter по-русски
Andrei Pavlov
class foo<T> {
   void foo(T Function() creator) {
       final t = creator();
   }
}
👍🏿
источник

SH

Sergey Hottabych in Dart & Flutter по-русски
Евгений Баладжа
Ну, в моем примере на T наложен констрейнт, хотя, проблема понятна, конструкторы в основном требуют параметров, а для специального случая "дефолтный конструктор без параметров" разработчики дарта просто не захотели заморачиваться.
Он от этого не перестает быть "любым типом".
Т — любой тип, наследующийся от MyClass1
источник

SH

Sergey Hottabych in Dart & Flutter по-русски
Евгений Баладжа
Ну, в моем примере на T наложен констрейнт, хотя, проблема понятна, конструкторы в основном требуют параметров, а для специального случая "дефолтный конструктор без параметров" разработчики дарта просто не захотели заморачиваться.
Это не они не захотели заморачиваться, а как следствие того, что в Дарт нет рефлексии.
Не зная в рантайме, что за тип Т, ты никак не заинстантишь экземпляр Т.
источник

ЕБ

Евгений Баладжа... in Dart & Flutter по-русски
Sergey Hottabych
Это не они не захотели заморачиваться, а как следствие того, что в Дарт нет рефлексии.
Не зная в рантайме, что за тип Т, ты никак не заинстантишь экземпляр Т.
Нет рефлексии... кстати да, я совсем забыл об этом. Это ж по идее сильно облегчает рантайм, что для встраиваемых систем критично. Черт, а в этом вашем Гугле оказывается люди совсем неглупые!!!
источник

MS

Mykola Shevchenko in Dart & Flutter по-русски
В дарте же есть мироры, но они во флаттере недоступны
источник

НО

Никита Обрывков... in Dart & Flutter по-русски
Mike
Ну если пустые не помогают, нужно смотреть совместимость (через пабгрин это удобнее). И либо править плагин и делать PR(до этого пользоваться форком), либо избавляться от зависимости.
Такой момент ещë, что у моего коллеги тот же код билдится исправно
источник

ЕБ

Евгений Баладжа... in Dart & Flutter по-русски
Mykola Shevchenko
В дарте же есть мироры, но они во флаттере недоступны
Точно, даже и не предполагал...
источник

M

Mike in Dart & Flutter по-русски
Никита Обрывков
Такой момент ещë, что у моего коллеги тот же код билдится исправно
Ну тогда кеширование, наверное. Попробуй кеш почистить
источник

AW

Alex Wow in Dart & Flutter по-русски
Евгений Баладжа
И это плохо. Если я имею тип, почему я не имею право создать его экземпляр? Это проблема дарта а не моя! )))
Тип т это объект ?
Как ты туда передашь объект которого нет ?
Что ты туда передашь . Хз ответили тебе или нет
источник

ЕБ

Евгений Баладжа... in Dart & Flutter по-русски
Alex Wow
Тип т это объект ?
Как ты туда передашь объект которого нет ?
Что ты туда передашь . Хз ответили тебе или нет
Все понятно. Т это тип, но вычислить его на момент компиляции видимо сложно. Поэтому вместо типа придется передавать функцию-билдер. Как-то так.
источник