問題タブ [implicit-conversion]
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.
scala - Scalaの特性と暗黙の変換の混乱
次の行は、Scala REPL(2.7.7)で手動で入力すると機能します。
ただし、それを使用してファイルをコンパイルしようとすると、次のエラーが発生します。
なんで?
ありがとう!
c# - .NET で多重継承の代わりに暗黙的な変換を使用する
特定のタイプのオブジェクトを 2 つの異なるタイプとして使用できるようにしたい状況があります。「基本」型の 1 つがインターフェイスである場合、これは問題になりませんが、私の場合は、両方とも具象型であることが望ましいです。
基本型の 1 つのメソッドとプロパティのコピーを派生型に追加し、派生型からその基本型への暗黙的な変換を追加することを検討しています。その後、ユーザーは、複製されたメソッドを直接使用するか、基本型の変数に代入するか、基本型を取るメソッドに渡すことにより、派生型を基本型として扱うことができます。
このソリューションは私のニーズによく合っているようですが、何か足りないものはありますか? これが機能しない状況や、API を使用する際に単純化する代わりに混乱を招く可能性がある状況はありますか?
編集:私の特定のシナリオの詳細:
これは、自動化されたトレーディング システム開発環境であるRightEdgeでインディケータが記述される方法の潜在的な将来の再設計のためのものです。価格データは、一定期間 (1 分、1 日など) の始値、安値、高値、終値の値を持つ一連のバーとして表されます。指標は、一連のデータに対して計算を実行します。単純なインジケーターの例は移動平均インジケーターです。これは、入力の最新のn 個の値の移動平均を示します。ここで、 nはユーザー指定です。移動平均は足の終値に適用されるか、別のインジケーターの出力に適用されて平滑化されます。
新しいバーが入るたびに、インジケーターはそのバーの出力の新しい値を計算します。
ほとんどのインディケータには 1 つの出力シリーズしかありませんが、複数の出力があると便利な場合があり ( MACDを参照)、これをサポートしたいと考えています。
したがって、インジケーターは、新しいデータが入ったときに呼び出されるメソッドを持つ「コンポーネント」クラスから派生する必要があります。ただし、出力シリーズが 1 つしかないインジケーターの場合 (これがほとんどです)、それはそれらにとって良いことです。シリーズ自体として行動する。そうすれば、ユーザーは を使用するSMA.Current
代わりに、SMA の現在の値に を使用できますSMA.Output.Current
。同様に、 よりも のIndicator2.Input = Indicator1;
方が望ましいIndicator2.Input = Indicator1.Output;
です。これは大した違いではないように思えるかもしれませんが、ターゲット ユーザーの多くはプロの .NET 開発者ではないため、できるだけ簡単にしたいと考えています。
私の考えは、出力系列が 1 つしかないインジケータに対して、インジケータからその出力系列への暗黙的な変換を行うことです。
java - 精度が失われる可能性があるさまざまな動作
Javaでは、あなたがするとき
精度エラーが発生する可能性があります。しかし、なぜあなたがそうするなら
エラーはありませんか?
java - 複合割り当ての自動 (アン) ボックス化が失敗する
複合代入とインクリメント/デクリメント演算子の暗黙的なキャストのおかげで、次のものがコンパイルされます。
また、自動ボクシングと自動アンボックスのおかげで、以下もコンパイルされます。
それでも、次のスニペットの最後の行でコンパイル時エラーが発生します。
ここで何が起こっているのかを理解するのを手伝ってくれる人はいますか? バージョンはbyte b
問題なくコンパイルされるので、それByte bb
に合わせて、必要に応じて適切なボックス化とボックス化解除を行うべきではありませんか?
追加の質問
Byte
では、複合代入演算子を、Character
、およびShort
左側で機能させる方法はありますか、それともこれらの型に対して単に違法 (!!!)ですか?
mysql - now() から日付フィールドへの暗黙のキャスト
MySQL 5.1 に問題があります。日時データ型は、日付列と一致するように暗黙的にキャストされません。
このリクエストは、MySQL 5.1 を使用して行を返しませんが、バージョン 5.0 ではうまく機能します。CURDATE()
代わりに使用するNOW()
と、MySQL 5.0 と MySQL 5.1 の両方で機能します。キャストが明示的 ( CAST(NOW() AS DATE)
) の場合、MySQL 5.0 と MySQL 5.1 の両方で機能します。
この問題は、datetime から date への暗黙的なキャストでのみ発生します。この問題に既に遭遇した人や、この問題を解決する方法についての手がかりを持っている人はいませんか? CURTIME() の代わりに NOW() を使用するのが最善ではないことはわかっていますが、これはここでの問題ではありません。現在アプリケーションで使用されており、その目的はすべてを書き換えないようにすることです。
ありがとう!
c# - C#の暗黙的な変換
現在、SQLデータベースからデータをロードしてから、取得した値をオブジェクトのプロパティに割り当てる必要があるアプリケーションに取り組んでいます。プロパティ名と列名が同じであるため、リフレクションを使用してこれを行っています。ただし、プロパティの多くは、基本的に10進型の通貨ラッパーであるカスタム構造体型を使用しています。構造に暗黙の変換を定義しました。
これは、コードで使用すると正常に機能します。しかし、私がこれを持っているとき:
System.DecimalからCurrencyに変換できないことを示すArgumentExceptionをスローします。それは他の状況でうまく機能するので、私は混乱しています。
java - Javaでnew Integer(i) == iが保証されていますか?
次のスニペットを検討してください。
最後の行が常に出力される理由は明らかです。参照同一性比較"false"
を使用しており、オブジェクトが既存のオブジェクトになることは決してありません。==
new
==
問題は最初の 3 行についてです。これらの比較は、自動アンボックス化されたプリミティブ上にあることが保証されていますか? 代わりにプリミティブが自動ボックス化され、参照同一性比較が実行される場合はありますか? (それはすべてです!)int
Integer
false
scala - 誰かがScalaでの暗黙の変換について説明してもらえますか?
より具体的には、BigIntはintをBigIntに変換するためにどのように機能しますか?
ソースコードでは次のようになっています。
このコードはどのように呼び出されますか?
この他のサンプル「日付リテラル」がどのように機能するかを理解できます。
の。
によって定義されます:
getがパラメータとしてint
メッセージDec
を渡すと、システムはリクエストを処理できる別のメソッドを探します。この場合はint
Dec(year:Int)
Q1。私は日付リテラルを正しく理解していますか?
Q2。BigIntにはどのように適用されますか?
ありがとう
c# - C#の明示的なインターフェイスメンバーへの安全でシンプルなアクセス
C#で明示的なインターフェイスの実装を使用している場合、そのインターフェイスのメンバーにアクセスするために、そのインターフェイスの1つにオブジェクトをキャストする必要が生じることがよくあります。コンパイル時の型チェックによって信頼性と保守性が向上したため、これを実行するために暗黙の変換を使用することを常に好みました。これを行うために私が知っている唯一の方法は、2行のコードを含み、スコープに別の変数を導入します。以下に例を示します。
コンパイラはその実装を知っているので、後で宣言を変更すると実行時ではなくコンパイルエラーが発生するため、暗黙的なキャストの方が明示的なキャストよりも優れていると思います。ただし、明示的なキャスト構文の単純さをいくらか好み、他の人のコードで使用されるのをよく見ました。MyType
IMyType
MyType
InvalidCastException
私の質問は3つあります:
- 上記のオプションのどれが好きですか(そしてその理由)?
- これを行うためのより良い方法はありますか?
- 暗黙的なキャストが可能な場合に明示的なキャストを実行することに関するいくつかのベストプラクティスは何ですか?
java - Polymorphism, Autoboxing, and Implicit Conversions
Would you consider autoboxing in Java to be a form of polymorphism? Put another way, do you think autoboxing extends the polymorphic capabilities of Java?
What about implicit conversions in Scala?
My opinion is that they are both examples of polymorphism. Both features allow values of different data types to be handled in a uniform manner.
My colleague disagrees with me. Who is right?