`
(defprotocol TestProtocol
(tester [o]))
(let [t tester]
(defn another-tester [o]
(t o)))
(def another-tester2 tester)
(extend-protocol TestProtocol
String
(tester [o] (println "Strings work!")))
(another-tester "A") ;; 错误
(another-tester2 "A") ;; 错误
(tester "A") ;; 正常工作
(let [t tester]
(defn another-tester [o]
(t o)))
(another-tester "A") ;; 正常工作
(def another-tester2 tester)
(another-tester2 "A") ;; 正常工作
(extend-protocol TestProtocol
Long
(tester [o] (println "Longs work!")))
(another-tester "A") ;; 正常工作
(another-tester 3) ;; 错误
(another-tester2 3) ;; 错误
`