Na przykład, gdybym miał:Jak mogę przekonwertować wektor na rekord?
(defrecord Item [name cost])
Jak mogę przekonwertować ["ball" 10]
do {:name "ball", :cost 10}
?
Na przykład, gdybym miał:Jak mogę przekonwertować wektor na rekord?
(defrecord Item [name cost])
Jak mogę przekonwertować ["ball" 10]
do {:name "ball", :cost 10}
?
user=> (defrecord Item [name cost])
user=> (apply ->Item ["ball" 10])
#user.Item{:name "ball", :cost 10}
Krótkie wyjaśnienie tego, co się dzieje. (->Item "ball" 10)
jest jedną ze składni do tworzenia rekordów z podanych argumentów. Jest taki sam jak (Item. "ball" 10)
. W twoim przypadku masz wektor argumentów, więc używamy (apply fn args-vector)
, żeby sobie z tym poradzić.
Kudo, jeśli mógłbyś rozwinąć tam, gdzie funkcja -> Item pochodzi od –
Alexey, uczyłeś mnie Clojure przez cały dzień! Jeszcze raz dziękuję). Czy możesz szybko powiedzieć mi, jak nazywa się '->', więc mogę zbadać, co to znaczy dalej? – inline
Dodano krótkie wyjaśnienie tego, co się dzieje. –
chcesz przekonwertować go na format Json jak w formacie {key: value}? –
Myślę, że tak długo, jak to jest mapa skrótów, będzie dobrze. Chodzi mi o to, co to właściwie jest płyta, prawda? – inline