tôi nhận thấy rằng khi tôi đang làm việc với các chức năng mà mong đợi các chức năng khác như các thông số, đôi khi tôi có thể làm điều này:Khi nào tôi phải đối xử với các phương pháp của tôi như là các hàm được áp dụng một phần trong Scala?
someFunction(firstParam,anotherFunction)
Nhưng thời điểm khác, trình biên dịch được đem lại cho tôi một lỗi, nói với tôi rằng tôi nên viết một chức năng như thế này, để cho nó để đối xử với nó như một chức năng áp dụng một phần:
someFunction(firstParam,anotherFunction _)
Ví dụ, nếu tôi có điều này:
object Whatever {
def meth1(params:Array[Int]) = ...
def meth2(params:Array[Int]) = ...
}
import Whatever._
val callbacks = Array(meth1 _,meth2 _)
Tại sao tôi không thể có mã như sau:
val callbacks = Array(meth1,meth2)
Trình biên dịch cho tôi biết thêm _
trong hoàn cảnh nào?
Lưu ý rằng nó không phải là một * phần chức năng *, đó là một * chức năng được áp dụng một phần *. –
Thx, sửa chữa nó .. – agilesteel
Không nên (r: RichAPI) là (r: ThnirdPartyAPI)? –