: Burada ne demektir 'MyType = Int => Boole' scala beyanı aşağıda ne demektir
type MyType = Int => Boolean
benim anlayış:
Ben yeni bir tür 'MyType' ilan ediyorum ama yüksek mertebeden fonksiyonu ile ne kastedildiğini 'Int => Boole'
: Burada ne demektir 'MyType = Int => Boole' scala beyanı aşağıda ne demektir
type MyType = Int => Boolean
benim anlayış:
Ben yeni bir tür 'MyType' ilan ediyorum ama yüksek mertebeden fonksiyonu ile ne kastedildiğini 'Int => Boole'
çok daha yeni tip takma ilan olarak yeni tip ilan değil. Hala aynı tipler: ama takma adlar biraz daha özlü yazmanıza izin veriyor.
Int => Boolean
, bir bağımsız değişken olan bir Int alır ve bir Boole döndüren bir işlev türüdür. Örneğin
, tip Int => Boolean
olabilir "den büyük 5" gibi bir işlevi:
type MyType = Int => Boolean
val greaterThan5: MyType = (x: Int) => x > 5
greaterThan5(7) // true
Sen, aşağıdaki derler doğrudur:
İştetype MyType = Int => Boolean
def positive(x: Int) = x > 0
val fun: MyType = positive
fun(42) //yields true
Tür takma MyType
söyleyerek beyan Int
alarak ve Boolean
dönen bir işleve eşdeğerdir. Sonra böyle bir beyanla eşleşen bir yöntem oluşturursunuz. Son olarak, bu yöntemi MyType
türünde bir değişkene atarsınız. Derler ve iyi çalışır. Bu yeni tip sadece takma, olmadığını
Not: 'Int => Boolean` pasajı [Coursera en] kaynaklanmaktadır olmasa bile, daha yüksek dereceden bir fonksiyon (_not_ olduğu
trait MyType2 extends (Int => Boolean)
val fun2: MyType2 = positive _
error: type mismatch;
found : Int => Boolean
required: MyType2
val fun2: MyType2 = positive _
^
Not (http://www.coursera.org/course/progfun) "2. Hafta: Daha Yüksek Sıralama Fonksiyonları" atama ;-)) – netzwerg
@netzwerg Evet, 'basit' şeyleri bile zor buluyorum. – user701254
Endişelenmeyin, bu gerçekten çok basit: Daha yüksek sıralı fonksiyonlar, ya giriş parametresi olarak başka bir işlev alan veya başka bir işlev döndüren/çıkan fonksiyonlardır ([Wikipedia] (http://en.wikipedia.org/wiki/Higher) -order_function)) – netzwerg