Size: a a a

Сrystal Lang — русскоговорящее сообщество

2021 December 05

G

Gabben in Сrystal Lang — русскоговорящее сообщество
Хотя можно немного улучшить, если добавить compile-time ошибки
https://play.crystal-lang.org/#/r/cea2
источник

a

akella122⌬ in Сrystal Lang — русскоговорящее сообщество
Понял, значит пока Кристал мне не нужен. Я то мобил на котлине с Дартом пишу
источник

G

Gabben in Сrystal Lang — русскоговорящее сообщество
Осталось написать ещё один макрос, который все это скроет за красивой оберткой
источник

G

Gabben in Сrystal Lang — русскоговорящее сообщество
Как-то так https://play.crystal-lang.org/#/r/cee2
Осталось решить вопрос с одинаковыми по сигнатуре методами для разных дженериков
источник

G

Gabben in Сrystal Lang — русскоговорящее сообщество
Пожалуй, нужен ещё один макрос)
источник

G

Gabben in Сrystal Lang — русскоговорящее сообщество
https://play.crystal-lang.org/#/r/cefp

Макрос конечно выглядит ужасно и не работает ограничение по возвращаемому типу
источник

DH

Dark Hole in Сrystal Lang — русскоговорящее сообщество
По возвращаемому типу это как?
источник

G

Gabben in Сrystal Lang — русскоговорящее сообщество
def hello : ReturnType

Имею ввиду такую конструкцию
источник

DH

Dark Hole in Сrystal Lang — русскоговорящее сообщество
А
источник

G

Gabben in Сrystal Lang — русскоговорящее сообщество
Ещё нельзя def hello(a : T) forall T
источник

G

GNU/Плюшка in Сrystal Lang — русскоговорящее сообщество
можно и без макросов https://play.crystal-lang.org/#/r/cefu
источник

G

GNU/Плюшка in Сrystal Lang — русскоговорящее сообщество
в смысле нельзя? можно же https://play.crystal-lang.org/#/r/cefw
источник

G

Gabben in Сrystal Lang — русскоговорящее сообщество
С моим макросом нельзя
источник

G

GNU/Плюшка in Сrystal Lang — русскоговорящее сообщество
ааа
источник

G

GNU/Плюшка in Сrystal Lang — русскоговорящее сообщество
эх, вот бы завезли шаблоны как в плюсах...
источник

G

Gabben in Сrystal Lang — русскоговорящее сообщество
Ну кстати да, и компилятор такую проверку уберет в итоге.
Только вывод типов может не то вывести. Как минимум всегда(?) будет nilable
источник
2021 December 06

АК

Александр Куцан... in Сrystal Lang — русскоговорящее сообщество
Привет, наткнулся тут на проблему при переходе на кристал 1.2.2
Был у меня класс
class Cookie < ::HTTP::Cookie
 include JSON::Serializable
end

И я мог его использоват чтоб превращать куки из Json туда и обратно.
В новой версии кристала в HTTP::Cookie добавили новое поле Time::Span
https://github.com/crystal-lang/crystal/blob/master/src/http/cookie.cr#L27

Это новое поле само не конвертируется в Json.  
Как мне указать, метод его конвертации, чтоб не переопределять класс атандартной библиотеки?
источник

G

Gabben in Сrystal Lang — русскоговорящее сообщество
Не вижу в документации JSON подобного. Тут либо Time::Span расширять, либо в твоем потомке переопределить это поле и навешать на него converter (но на счёт этого способа не уверен)

https://crystal-lang.org/api/latest/JSON/Serializable.html
источник

G

Gabben in Сrystal Lang — русскоговорящее сообщество
Хотя есть ещё сто один способ это сделать :)
источник

AP

Alexander Popov in Сrystal Lang — русскоговорящее сообщество
Если расширение стандартного класса простое, универсальное и однозначное — можно сделать PR в Crystal.
источник