Size: a a a

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

2021 September 14

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Можно перепутать символы и долго удивляться почему функция не вызывается или почему из неё валится nil все время хотя ошибок нет
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
У меня kondo такое поймал недавно
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
;•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
 (-> {:a {:b {:c 0}}} :a :b :c)
;•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
            Execution time mean : 25,303591 ns

;•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
 (get-in {:a {:b {:c 0}}} [:a :b :c])
;•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
            Execution time mean : 114,729581 ns
источник

OR

Oleg Roshchupkin in Clojure — русскоговорящее сообщество
Да, знаю, но иногда предпочитаю второй вариант для удобства чтения.
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Видимо из-за вектора
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Хотя я думал наоборот
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
из-за большего количества проделываемой работы
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Ну и get-in лучше композится
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
В большой кодебазе зачастую достаётся в одном месте а путь формируется в другом
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
у get-in только один оправданный use case — когда ks вычисляется динамически в рантайме
применять его для фиксированных случаев — из пушки по воробьям 😊
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Ну часто так и есть и в мапах Ключи могут какие угодно быть
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
когда путь сформирован в другом месте, то ты и не напишешь -> :a :b :c
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Ну тк макросы не аплаятся то да
источник

ST

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

AC

Anton Chikin in Clojure — русскоговорящее сообщество
У нас наоборот
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Из рефрейм базы огромной таскаем всякое
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
ну тогда и вопрос не стоит, каким способом доставать данные
то есть это уже вне контекста заданного вопроса 😜
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
путь полезно выностить в переменную и ссылаться на него в assoc-in/get-in
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
(def path-user-profile [:foo :bar :user])
источник

DF

Damir Farazetdinov in Clojure — русскоговорящее сообщество
А ещё get-in работает с ключами произвольных типов. Не только с keyword’ами.
источник