で地元のヒント入力できない誰かが私にこのエラーを説明してもらえ:は原始初期化子
user> (let [^int i 3] i)
CompilerException java.lang.UnsupportedOperationException: Can't type hint a local with a primitive initializer, compiling:(NO_SOURCE_PATH:1)
私は理解していない、
私は、なぜ、ヒントを入力することはできませんまさに?私は同じような状況に配列型のヒントを使用することができますなぜ
?
user> (let [^ints ii (int-array 1)] ii) #<int[] [[email protected]>
ローカル整数変数をタイプヒントする方法はありますか。
参照http://clojure.org/java_interop#Java%20Interop-Some%20optimization%20tips:。「([FOO(int型バー)]みましょう...)プリミティブローカルを取得するための正しい方法ですしないでください^整数などを使用してください。 –
おそらく、コンパイラは既にここで 'i'の型を判断するのに十分な知識を持っているからです。 – Alex
@ A.Webbありがとうございます。おそらく私の実用的な問題を解決するでしょう。質問をしばらく開いたままにしておきます。うまくいけば、誰かがこの制限の理由を説明することができます。 – sastanin