問題タブ [implicit-typing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - クラス初期化子で暗黙的に型指定された配列を使用する
次の点を考慮してください。
何が起こっているのか理解したいと思っています。ListProp セッターは呼び出されません。また、ArrayProp を割り当てようとするコンパイラ エラーは、内部的に、この割り当てが "Add" メソッドを呼び出そうとしていることを示唆しています。
PS: 明らかに、このようにコードを動作させることができます:ArrayProp = new int[] { 4, 5, 6 }
しかし、それは私の好奇心を満足させません :)
scala - 戻り値の型からジェネリック暗黙パラメーターの型を推測する
このような単純なクラスがあるとします
val を宣言するとき、コンパイラは、関数の暗黙的なパラメーターの型が結果の型と同じであり、結果の型が value の型と一致する必要があるため、 であるとf2
推測できます。f
Int
f2
Int
ただし、Ordering[A]
ミックスに投入すると:
このコンパイル エラーが発生します。
あいまいな暗黙の値: 型 => scala.collection.generic.CanBuildFrom[String,Char,String] のオブジェクト Predef の値 StringCanBuildFrom と型 [A]=> <:<[A,A] のオブジェクト Predef のメソッド $conforms の両方予想されるタイプ A に一致
を呼び出すときに型情報を追加すると、次のf()
ようにコンパイルされます。
最初に、暗黙の順序付けのケースに遭遇しました。これは、Scala が左から右に推論することに関係していると思いました。最初に戻り値の型を一致させてから、 の (暗黙の) パラメータ型を推測することはできないと思いましたf
。しかし、暗黙の順序付けなしでケースを試してみたところ、それが機能することがわかりました-戻り値の型は an でなければならないため、f
によってパラメーター化する必要があると推測されました( is an であるため)。Int
Int
f2
Int
implicit a: A
Ordering 暗黙パラメーターのみを削除して残すと、エラーは残りますが、次のようになることに注意してください。
オブジェクト Ordering のメソッド Tuple9 で始まる型 Ordering[A] の暗黙的な展開の発散。
再び、型パラメーターを追加して、それがval f2: Int = f[Int]()
役立つようにします。
どうしたの?コンパイラは、パラメーターが である必要があると推論できるのに、そのパラメーターA
が である必要があると推論できないのはなぜですか?Int
Ordering[A]
Ordering[Int]
scala - フラット化された関数で「そのオブジェクト<:<Try [U]を証明できません」
同じタイプのネストされたマップを持つMap
可能性がある があります。これらのネストされた各マップには、外側のマップへの参照があります。
現在のマップを調べるメソッドを定義しました。findValue
何も見つからない場合はその親に移動しnull
、最も外側の の親に到達するまで続けSymbolTable
ます。
と;Try
で一致させることができるように、この動作を に入れました。ただし、型が a-laになるのを避けるために、出力を平坦化します。Success
Failure
Try[Try[Try[ ... Try[TableVaue]... ]]]
電話しようとするとflatten
、次のエラーが発生します。Cannot prove that Object <:< Try[U]
関連するコードは次のとおりです。
私の質問は次のとおりです。コードを大幅にリファクタリングせずにこれを機能させるにはどうすればよいですか?
groovy - Groovy での (ブール値への) 暗黙的なキャストの利点
私は静的型付け言語から Groovy に来ています。そして、bool への暗黙的な変換を行うことの利点は何なのかわかりませんか? この機能は有用というよりもかなり物議を醸していると思います。
c# - C#: IF ブロック内で暗黙的な型変数を定義し、外部で使用する方法
私はこのようなことをしたい:
問題は、最初に宣言せずに暗黙の変数を定義することも、宣言した後に暗黙の変数を再宣言することもできないため、これを行うことができないことです。
データの戻り値の型 (暗黙的な型変数のポイント全体) がわからない場合、これを行う適切な方法は何ですか?
編集:
以下の最初の回答は、型が明確に定義されている場合にうまく機能しますが、このようなものはどうでしょうか?