Size: a a a

Clojure — русскоговорящее сообщество

2020 May 08

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
"ничего не описано" это any
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
any это не подтип int -> int
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Andrew Rudenko
да, при дефолтных настройках
ну то есть результат такой же, если бы у меня f1 тоже никак не была описана?
и в чём тут typing тогда?
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
ругаться будет при дефолтных настройках
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
ну компилятор тебя форсит проверить тип f2
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
ну точнее в этом случае ты хер что проверишь кста...
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Andrew Rudenko
ну компилятор тебя форсит проверить тип f2
как он меня форсит?
заставляет для неё тоже прописать сигнатуру?
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
проверить в рантайме
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
с объектами так
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
но с функами сложнее, функи в жс типы в рантайме не несут
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
в отличии от го, например
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
где через рефлексию ты можешь все проверить
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
собственно go это тоже gradual typing язык по сути
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
ну вот не нужно мне проверять в рантайме, я «знаю» что у f2 правильная сигнатура, но не хочу этого описывать, ибо gradual
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
там половина значений в коде — interface{} тип имеют )
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
Sergey Trofimov
ну вот не нужно мне проверять в рантайме, я «знаю» что у f2 правильная сигнатура, но не хочу этого описывать, ибо gradual
ну если ты "знаешь", то можешь закастить к типу небезопасно просто
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
Andrew Rudenko
но с функами сложнее, функи в жс типы в рантайме не несут
тут вопрос к знатокам ТС, кста!
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
то есть у меня ощущение, что если gradual — то по факту ни то ни сё
либо начинаешь по цепочке везде указывать типы, чтобы согласовать подключение всех элементов
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Andrew Rudenko
ну если ты "знаешь", то можешь закастить к типу небезопасно просто
ну опять же работа на удовлетворение компилятора 😊
источник

TP

Tim Plotnikov in Clojure — русскоговорящее сообщество
Vlad Lisovsky
А что если скажу, что классы / структуры и типы это ортогональные вещи ?
Я понимаю о чем вы, но все-таки не соглашусь до конца.
Есть у меня класс User. И не важно что это - джавовый поджо, сишная структура или что-то ещё. В конечном итоге я использую его как compound type - набор полей)
источник