phủ Shortest của p: p (_)
Khi bạn áp dụng các vị p như một đối số chức năng khác:
- p hay p (_) là chữ viết tắt của sự xuất hiện lambda: (x) => p (x)
- ! p (_) là từ viết tắt của lambda expresion: (x) =>! p (x) và chỉ với! p trình biên dịch bị mất.
Ví dụ, sử dụng một tập các số nguyên (thử nó trên một bảng Scala):
def someOtherFunction (x: Set[Int], p: Int => Boolean):Boolean = x.forall(p)
def someFunction(x: Set[Int], p: Int => Boolean): Boolean =
someOtherFunction(x, !p(_))
val x = Set(1,2,3)
var p: Int => Boolean = (_ > 0)
//_ > 0 is an abbreviaton of (x) => x > 0
someFunction(x, p) //false
someOtherFunction(x, p) //true
p = _ > 1
someFunction(x, p) //false
someOtherFunction(x, p) //false
p = _ > 3
someFunction(x, p) //true
someOtherFunction(x, p) //false
println
Nguồn
2014-09-23 16:47:05
Coursera Khóa học;): D – Montaro
cousera lớp scala đời :) – CuiPengFei