Herhangi bir boyutta bir tuple ve bir indeksle birlikte giren bir Scala metodu yazmayı umuyorum ve bu endekste tuple'daki elemanı döndürür. Her şeyi nasıl yapacağımı biliyorum ama türü koru. Dönüş değerinin, tuple öğesinin dinamik türünde olmasını sağlamak için henüz bir yol bulamadım.Scala'da dinamik türü koruyan tuple'lar için genel getto yöntemi mi?
def subscript_get(tup: Product, index:Int): Any={
return tup.productElement(index)
}
örneğin kullanım olacaktır:
subscript_get((0,1,2,3),0) --> Int = 0
subscript_get((0,1,"asdf",3),2) --> java.lang.String = asdf
Ben geri sonucunu döküm biliyor İşte
var bugüne kadar fonksiyonudur daha sonra aradığım şey için, ama bu benim için işe yaramıyor çünkü her zaman ne tür bir oyuncu olduğumu bilmiyorum.Böyle bir şey mümkün mü? Teşekkürler!
Makrolar ile 2.10'da yapmak mümkündür, ancak sadece literal 'index' argümanları için (ve sadece [this] nedeniyle (http://stackoverflow.com/q/13669974/334519)" biraz tuhaf " amaçlanan "davranış". –
Makrolara bakılmaksızın, statik olarak mevcut olan dinamik tip bilgisini vermek hakkında konuşmak hiç de saçmadır. –
@TravisBrown, tam kullanımlı çağrı siteleri için size iyi bir yanıt verdi. "Subscript_get" için gayri-resmi olmayan çağrı siteleri için aklınızda neler olduğuna dair bazı örnekler verebilir misiniz? Özellikle, yukarıdaki imzada 'Ürün'ü kullanıyorsunuz, çünkü türün çalışma zamanına kadar ertelenmesini gerçekten istiyorsunuz, yoksa derleme zamanında tüm olası ürün türleri üzerinde soyutlamak istediğiniz için kullanıyor musunuz? –