Herhangi bir örtülü dönüştürme ve daha yüksek işlevli işlev sorunum var. Bir fonksiyonun bir ikinci-sıra-fonksiyonuna dolaylı bir dönüşümünün, dönüştürülecek işlevin en az iki parametresi olması durumunda, işe yarayacağı görülmektedir.Bir işlevin bir ikinci-sıra-işlevine örtük dönüştürülmesi, yalnızca dönüştürülecek işlev en az iki parametreye sahipse çalışır.
İşleri:
implicit def conv(foo: Integer => String): String => String = null
Çalışmaz:
implicit def conv(foo: Integer => String): String => String => String = null
Çalışır:
{
implicit def conv(foo: Integer => String): String => String = null
def baadf00d(foo: Integer): String = null
def deadbeef(foo: String => String) = null
deadbeef(conv(baadf00d))
deadbeef(baadf00d)
}
{
implicit def conv(foo: Integer => String): String => String => String = null
def baadf00d(foo: Integer): String = null
def deadbeef(foo: String => String => String) = null
deadbeef(conv(baadf00d))
deadbeef(baadf00d) // <-------- DOES NOT COMPILE!
}
{
implicit def conv(foo: (Integer, Integer) => String): String => String => String = null
def baadf00d(foo: Integer, bar: Integer): String = null
def deadbeef(foo: String => String => String) = null
deadbeef(conv(baadf00d))
deadbeef(baadf00d)
}
: başarısızlık noktası ile
implicit def conv(foo: (Integer, Integer) => String): String => String => String = null
Tam örneği
Neyi özlüyorum?
Teşekkürler!
bana Scala örtük bir çözünürlük siğil gibi görünüyor. Hangi Scala sürümü bu? – gzm0