Tại sao tôi không thể viết lạiáp dụng Scala một phần chức năng cà ri
println(abc.foldRight(0)((a,b) => math.max(a.length,b)))
trong
object Main {
def main(args : Array[String]) {
val abc = Array[String]("a","abc","erfgg","r")
println(abc.foldRight(0)((a,b) => math.max(a.length,b)))
}
}
để
println(abc.foldRight(0)(math.max(_.length,_)))
? scala
sản lượng phiên dịch
/path/to/Main.scala:4: error: wrong number of parameters; expected = 2
println(abc.foldRight(0)(math.max(_.length,_)))
^
one error found
Điều này không đủ mô tả cho tôi. Không phải là kết quả lambda có hai tham số một trong số đó được gọi cho phương pháp .length, như trong abc.map(_.length)
?
Sử dụng hai _ trình biên dịch sẽ biết tham số nào thay thế cho giá trị _ đầu tiên và thứ hai từ a, b? –
Repsectivly, tôi nghĩ –