Bir protokolProtokollerdeki ipucu dönüş türlerinin Clojure içinde herhangi bir etkisi var mı?
(defprotocol Individual
(^Integer age [this]))
bir dönüş türü ipucu olabilir ve derleyici yöntemlerinizi uymak yapacak:
(defrecord person []
Individual
(^String age [this] "one"))
; CompilerException java.lang.IllegalArgumentException: Mismatched return type: age, expected: java.lang.Object, had: java.lang.String, ...
Ama tip ipucu onurlandırmak gerekmez:
(defrecord person []
Individual
(age [this] "one"))
(age (new person))
; "one"
Yazımın bir etkisi var mı?
Bu
bir Can you specify the return type of a method in a clojure defrecord?
tipi ipuçları yersiz bulunmaktadır. Olmalı gibi (age^String [this] "one") '. Derleyici, yöntemleri * uydurmaz. – Thumbnail
Kafa karıştıran, ancak siz olduğu gibi yöntem adıyla, defrecord'daki tür ipucu için doğru konumdur (bkz. Doc). İlkel olmayan ipuçları, ilkel ipuçları göz ardı edilebilecek gibi görünmüyor ve ilkel ipuçlarının onları uygulama yeteneğini kırdığı görülüyor. Cevabımı en iyi şekilde spekülatif olarak sildim. –
@ A.Webb Çabalarınız için teşekkür ederiz. Ben kendimi dahil şaşkın, bir uyarı levhası uyarı olarak soru terk etmek eğilimindeyim. – Thumbnail