`
(defprotocol TestProtocol
(tester [o]))
(let [t tester]
(defn another-tester [o]
(t o)))
(def another-tester2 tester)
(extend-protocol TestProtocol
String
(tester [o] (println "字符串工作!")))
(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 "长整数工作!")))
(another-tester "A") ;; 工作正常
(another-tester 3) ;; 错误
(another-tester2 3) ;; 错误
`