Aşağıdaki neden çalışmıyor? (Evet, 2.9.0final ile çalışan ve üzerine "-Xexperimental" seçeneğini döndü ediyorum.)Herhangi Birinden Dinamik'e Kapalı Dönüştürme
implicit def any2Dynamic(a: Any) = new Dynamic {
def applyDynamic(name: String)(args: Any*) = {
println(a + name)
}
}
"Say".hello // value hello is not a member of java.lang.String
One Bunun ne kadar anlamlı tartışabiliriz ... beklendiği gibi bu işe istiyorsanız neyi Öncelik "Say".toInt
: StringLike.toInt
veya (new Dynamic {...}).applyDynamic("toInt")
adresinde yer alacaktır?
Güvenliğiniz sağda. Ama örtülü def'i kullanım durumumla kısıtlarsam örtük X2Dynamic (x: X) = yeni X {...} '(benim problemim," X "ile sınırlı güvenlik problemi yazın) bir DSL ile bir dinamik oluşturmak için çağırma, yani örneğin harici olarak xml olarak tanımlanır. Şimdiye kadar aklımda bir deney ... Bu arada, kaynak bağlantıları için teşekkürler! –
Aslında bu tür davranışların harika olduğunu düşünüyorum. Dar bir kapsamda dinamik dil yeteneklerini kullanmanıza izin verebilir. Script veya DSL için harika. – IttayD
@IttayD Ben de;) En azından, SO'da iyi bir soruya verilen karmaşık bir cevap söz konusu olduğunda aklınızda bulundurun. –