2013-06-05 17 views
5

Ö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()); 
+1

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

+0

Var a = new A(); int b = a; – SpiderPig

+0

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

cevap

2

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(); 
11

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.

Yukarıda
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

İlgili konular