カスタムクラスAのインスタンスをintにキャストしたいと思います。暗黙のキャスト演算子の構文は何ですか? (私は、このような機能があることを思い出したが、私はウェブ上でそれを見つけることができないと思った)dartの暗黙的なキャスト演算子の構文は何ですか?
int a = (new A());
カスタムクラスAのインスタンスをintにキャストしたいと思います。暗黙のキャスト演算子の構文は何ですか? (私は、このような機能があることを思い出したが、私はウェブ上でそれを見つけることができないと思った)dartの暗黙的なキャスト演算子の構文は何ですか?
int a = (new A());
タイプの注釈がダートでの動作に影響することはできません。あなたがチェックモードで実行していない場合は、この:実行時に
var a = new A();
:
int a = new A();
は、このと同じように動作します。つまり、チェックモードでない場合は、と注釈された変数にA
を格納することはできますが、実際の変換は行われません。
チェックモードで実行している場合は、最初のフォームでランタイム例外が発生します。
私はわからないんだけど、私はが何を求めていることint
に「キャスト」するとき自動的に行われます、あなたのクラスA
とint
間の変換を定義するための方法だと思い。私の知る限り、そのようなものは存在しません。これを行うメソッドを定義するだけですみます。たとえば:
int a = new A().to_i();
また、「いや、本当に、このオブジェクトは、このタイプとして扱う」ツールを伝える手助けするas
を使用することができます。
これは、dart:htmlのquerySelector()
機能に対処する必要がある場合の良い例です。上記で
FormElement form = querySelector('#sign-up') as FormElement;
、querySelector('#sign-up')
によって返されたオブジェクトは、それが本当にFormElementのインスタンスであることを確認します。
詳細はこちらhttps://www.dartlang.org/docs/dart-up-and-running/ch02.html#operators
私は構文が「全く構文がない」と信じています。言い換えれば、 '()'を止めて、それはちょうどうまくいくはずです。 http://news.dartlang.org/2012/05/types-and-casting-in-dart.htmlを参照してください。ダウンキャストが可能である(そして意味をなされる)という前提があります。あなたのクラス「A」は何ですか? – Floris
var a = new A();を書くことができます。 int b = a; – SpiderPig
暗黙の型変換は、スクリプト言語では実装が難しい。しかし、明示的な変換は非常に簡単に実装できます。 Dartでは、明示的に変換演算子は存在しません。明示的な変換演算子はDartに実装されていないので、Dart 'var a =(int)new A()'ではこれを行うことはできません。 – mezoni