Özel sınıfımın örneklerini int. Kapalı cast operatörünün sözdizimi nedir?Dart içinde kapalı cast operatörü için sözdizimi nedir?
int a = (new A());
Özel sınıfımın örneklerini int. Kapalı cast operatörünün sözdizimi nedir?Dart içinde kapalı cast operatörü için sözdizimi nedir?
int a = (new A());
Tipi açıklamalar Dart içinde davranışını etkileyen izin verilmez (Ben orada böyle bir özelliktir ancak web'de bulamıyorum hatırladım düşünce). Eğer kontrol modunda çalışan değil, o zaman bu:
int a = new A();
bu kadar aynı şekilde çalışacaktır: çalışma anında
var a = new A();
. Diğer bir deyişle, kontrol modunda olmadığında, A
kodunuzu int
olarak açıklanmış bir değişkende saklayabilirsiniz, ancak gerçek bir dönüşüm gerçekleşmez.
İşaretli modda çalışıyorsanız, ilk form size çalışma zamanı özel durumu verecektir.
emin değilim ama ne için soruyorsun A
sınıf arasında ve ne zaman "cast" bir int
için otomatik olarak gerçekleşecektir int
bir dönüşümü tanımlamak için bir yoldur düşünüyorum . Benim bildiğim bir şey yok. Bunu yapmak için basit bir yöntem tanımlamanız gerekir. Örneğin:
int a = new A().to_i();
Ayrıca araçlarını anlatmak için as
kullanabilirsiniz "hayır, gerçekten, bu tip olarak bu nesneyi ele".
Bunun iyi bir örneği, dart: html's querySelector()
işleviyle uğraşmanız gerektiğidir.
FormElement form = querySelector('#sign-up') as FormElement;
, querySelector('#sign-up')
tarafından döndürülen nesne gerçekten FormElement örneğidir olduğu kontrol edilir.
daha https://www.dartlang.org/docs/dart-up-and-running/ch02.html#operators
azından ben sözdizimi "Hiç hayır sözdizimi" olduğuna inanıyoruz öğrenin. Başka bir deyişle, '()' yi bırakın ve "sadece çalışmalı". Http://news.dartlang.org/2012/05/types-and-casting-in-dart.html sayfasına bakın. Bir downcast'in mümkün olduğu (ve mantıklı) bir varsayım olması gerekir. Sınıfın A nedir? – Floris
Var a = new A(); int b = a; – SpiderPig
Komut dosyası langauge içinde uygulamak için örtülü bir tür dönüşüm. Ancak açık dönüşüm çok kolay uygulanabilir. Kesintisiz olarak Dart, açık dönüşüm işlecini böyle bir şekilde mevcut değildir. Bu nedenle, Dart'ta var olmayan açık bir dönüşüm operatörü olduğundan, Dart 'var a = (int) new A()' da bunu yapamazsınız. – mezoni