2
我在Clojure 1.3中使用了Leiningen 2 REPL。 我收到了與元數據不一致的行爲(或者我認爲)。Clojure/lein repl&Metadata - 這是一個錯誤,並且在哪裏?
如果這是因爲它應該是,請解釋。如果沒有 - 我應該在哪裏提交錯誤?
這是元代應該如何工作,AFAIK。
main=> (def a ^:inited [ 1 2 3])
main=> (meta a)
{:inited true}
這就是我引用一個引用空序列時得到的結果。
main=> (def a ^:inited '())
main=> (meta a)
nil
main=> (def a ^{:inited (System/currentTimeMillis)} '())
main=> (meta a)
nil
對於沒有引號的空序列,一切都很好。但是,我得到了行號。
main=> (def a ^{:inited (System/currentTimeMillis)}())
main=> (meta a)
{:inited 1339678437612, :line 1}
main=> (def a ^:inited ())
main=> (meta a)
{:inited true, :line 1}
在這裏,我沒有得到行號:
main=> (def a ^:inited [ 1 2 3])
main=> (meta a)
{:inited true}
main=> (def a ^{:inited (System/currentTimeMillis)} [1 2 3])
main=> (meta a)
{:inited 1339678534644}
哈哈。是。當然。應該看到了。 (關於行號的任何提示?) – Falko
它們由編譯器添加以進行錯誤報告。列表用於函數調用。 – kotarak