доступ к аргументам макросов Clojure

Указатель на функцию-член класса не совпадает с указателем на функцию. Член класса принимает неявный дополнительный аргумент (указатель этого ) и использует другое соглашение о вызове.

Если ваш API ожидает функцию обратного вызова без ответа, это то, что вам нужно пройти к нему.

7
задан Mohammed Amarnah 15 January 2019 в 10:06
поделиться

2 ответа

Вы можете использовать as->:

(let [x {:a 1 :b 2}]
    (as-> x it
        (assoc it :a 20)                                             
        (assoc it :b (:a it)))) 
0
ответ дан akond 15 January 2019 в 10:06
поделиться

В дополнение к комментарию Аконда , обратите внимание, что использование as-> может быстро запутать. Я рекомендую либо извлечь функцию верхнего уровня для этих случаев, либо попытаться использовать as-> только в ->:

(-> something
    (process-something)
    (as-> $ (do-something $ (very-complicated $)))
    (finish-processing))
0
ответ дан Nico Schneider 15 January 2019 в 10:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: