5

コード

(defn sprintf [& args]
  (with-out-str
    (apply printf args)
    *out*))

エラー

(Chrome)

Uncaught TypeError: Cannot read property 'cljs$lang$maxFixedArity' of undefined 

質問:

私は何が間違っているのですか?

4

3 に答える 3

20

エラー:

Uncaught TypeError: Cannot read property 'cljs$lang$maxFixedArity' of undefined

...おそらく歴史上最も不可解なエラー メッセージは、実際には次のことを意味します。

apply存在しない (または必要とされていない) 関数を呼び出しています。

がんばれ、未来の Google 社員!

于 2014-07-24T10:49:25.423 に答える
1

(def sprintf format)簡単に思えます。

于 2012-06-13T09:40:39.190 に答える
0

あなたが見たエラーが表示されません。「評価環境に *print-fn* fn が設定されていません」というエラーが表示されます。

https://github.com/clojure/clojurescript/blob/master/src/cljs/cljs/core.cljsでソースを掘り下げると、 *print-fn* のドキュメントに次のメッセージが見つかります。

「各ランタイム環境は、出力を印刷するためのさまざまな方法を提供します。 *print-fn* がバインドされている関数には、印刷する必要がある文字列が渡されます。」

したがって、*print-fn* で遊んでみることをお勧めします。または、@amaloy が提案したように、「format」を直接使用してください。

(ちなみにhttps://github.com/clojure/clojurescript/wiki/Differences-from-Clojureを見ると、「*out* は現在実装されていません」と表示されます。)

于 2012-09-02T07:03:47.910 に答える