問題タブ [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.

0 投票する
3 に答える
223 参照

c# - Visual Studio IDE が var キーワードの意味について混乱している

次の簡単なプログラムを考えてみましょう:

このプログラムにはまったく問題はなく、問題なくコンパイルされます。Method(そして、おそらくfromへの呼び出しを含めて実行できますMain。)

ただし、Visual Studio IDEは、ローカル変数の型について間違った印象を持っていますz。実際には( C# では別名) であるzのに、 であると考えているようです。この問題は、少なくとも 3 つの状況で発生します。Int32Int16short

  1. varキーワードに「ホバー」する (マウスを押したままにする)Int32と、ツールチップに表示されます。それは間違いです。

  2. テキスト (キーボード) カーソルをステートメントTakeOnlyInt16(z);inside内に移動するMethodと、このステートメントの左下隅に小さなヒントが表示され、「 in のメソッド スタブを生成する」ように提案されTakeOnlyInt16ますProgram。メソッドが明らかに既にそこにあるため、それは間違っています。しかし、すでに存在するオーバーロードは間違っていると考えているようです。shortint

  3. z.の中に (zed dot)と入力するMethodと、 のメンバーがintellisenseInt32で表示されます。のオーバーロードは、 によって宣言されたものではなく、によって宣言されたものであることに注意してください。また、入力すると、拡張メソッドが IntelliSense メンバー リストに表示されません。CompareToInt32Int16z.

スクリーンショットなしで私の説明を理解していただければ幸いです。

質問:このバグはどこから来たのですか? それはよく知られていますか?古いバージョンの Visual Studio にもありますか?

私はVS2013でこれを試しました。

0 投票する
1 に答える
916 参照

arguments - Coq --- Arguments ディレクティブ

私はソフトウェアの基礎の本を読んでいて、パラメーターを暗黙的として宣言するコマンドに出くわしました:

たとえば、次のようになります。

ただし、そのようなコマンドを実行しようとすると、次のメッセージが表示されます。

本に付属のスクリプトをコンパイルしようとしても、同じメッセージが表示されます。何が問題なのですか?

Coq バージョン 8.3pl4 と CoqIDE エディターを使用しています。

0 投票する
3 に答える
812 参照

scala - 関数の引数の型から定義されたマッピングに基づいて、関数の戻り値の型を定義することは可能ですか?

理想的には、Scala で次のことができるようにしたいと考えています。

原則として、目標は単純に、外部マッピング定義を使用して(つまり、これらのクラスを変更できないと仮定して) 'マップ'TypeToBuildし、これを型推論に活用できるようにすることです。TypeToBuildBuilder

AnyRefタイプで次の作業を行いました:

型は、型引数ではなく関数引数として渡されることに注意してください。

Any上記を型だけでなく、型で動作させる方法を見つけるだけでも、私は非常に満足していAnyRefます。Singleton 型は s に対してのみサポートされているためAnyRef(つまり、TypeToBuild.type の使用)、この制限が発生しているようです。

そうは言っても、元の「理想的な」シナリオ (関数引数の代わりに型引数を使用) を解決する答えは素晴らしいでしょう!

編集

必要な可能な解決策classOf[_](使用する必要がないのが本当に大好きclassOfです!):

ただ使用できるということbuilder(TypeToBuild)は、エレガンス/簡潔さの勝利です。builder[TypeToBuild]おそらくこれはいつか機能する可能性があるため、使用できることはクールです(Scalaの型推論の進歩により):

classOf以下は、http : //ideone.com/94rat3を使用した完全な実際の例です。

0 投票する
0 に答える
1212 参照

c# - 明示的な型付けよりも暗黙的な型付けが好まれるのはなぜですか?

C# Coding Conventionsで、割り当ての右側から変数の型が明らかな場合に、Microsoft が暗黙の型指定の使用を推奨するのはなぜですか?

明らかなので宣言する必要はないことは理解していますが、なぜ提案なのですか?明示的な型付けはコードの追跡を容易にしませんか?

これにはコンパイル時間の利点がありますか?

0 投票する
1 に答える
705 参照

swift - SwiftのCGFloat数学でInt値を適切にサポートするには?

ゴール

Int私は (Web 上の他の多くの人と同じように) 数学で変数とリテラルを使用したいと考えていますCGFloat。なぜなら、読みやすさと開発の容易さは、精度の低下の可能性をはるかに上回るからです。これは、ストーリーボードを使用する代わりに、アプリ全体で手動レイアウトを使用する場合に最も顕著です。

CGFloatしたがって、以下は手動キャストなしで機能するはずです。

アプローチ

Swift 型に暗黙的な変換を追加することはできないためCGFloat、 andを取る適切な演算子を追加する必要がありIntました。

問題

SwiftCGFloatが整数リテラルから暗黙的に値を作成しようとすると、2 つの演算子があいまいになります。2 つのオペランドのどちらを変換するかはわかりません (例 case p)。

質問

あいまいな使用がなく、すべてのテスト ケースが成功する方法で演算子を宣言する方法はありますか?

0 投票する
1 に答える
247 参照

haskell - 単純な Haskell 関数が比率として表される分数引数を拒否するのはなぜですか?

私は確かに Haskell の初心者です。怠惰を探求するために、ghci で 2 番目の引数を返す関数を作成しました。

Charタイプ、[Char]NumFloating、およびFractional(10 進数で表される)の引数で呼び出すことができます。

比率として表されたものlatterに適用しようとすると、なぜ恐ろしいエラーが発生するのですか (およびその意味) :Fractional

0 投票する
1 に答える
95 参照

scala - 他の型クラスからの暗黙の def 型クラス

暗黙の Fractional または Integral 型クラスを既に持っているすべての型 T に対して、新しい暗黙の型クラス Divisible を追加したいと考えています。

私が書いたコードはコンパイルされません:

私が受け取っているエラーは次のとおりです。

パラメータ div の暗黙的な値が見つかりませんでした: core.common.Divisible[Double]

一方、暗黙的な定義をアプリに移動すると、コンパイルされます。

コンパイラが Divisible のコンパニオン オブジェクトで暗黙的な定義を見つけるのを助けるにはどうすればよいですか?

編集:この質問にはバグがありました。

0 投票する
2 に答える
107 参照

scala - コンパニオン クラスで暗黙のパラメーターが見つかりませんでした

私はこのようなNumber Wrapperを持っています

すべて正常に動作します。しかし、暗黙的な変換が必要な場合は、次のようにコンパニオン クラスを作成します。

しかし、コンパイル時にエラーが発生しました:

パラメータ n の暗黙的な値が見つかりませんでした: Numeric[A]

ここで何が問題なのですか? コンパイル時にタイプ A の暗黙的な一致を見つけようとしているのはなぜですか?

ご助力ありがとうございます。