Cho một phương pháp xác định như sauScala Trả về một hàm void với 0 tham số, cú pháp xấu xí?
def descendEach(times:Int)(f:()=>Unit) {
for (i <- 1 to times) {
// other code
f()
}
}
khi tôi sử dụng phương pháp này, tôi muốn để có thể viết
gd.descendEach(20){
println(gd.cost)
}
nhưng trình biên dịch scala chỉ cho phép tôi nhận được ngay với
gd.descendEach(20){() =>
println(gd.cost)
}
là loại xấu xí. Am i thiếu cái gì ở đây? Có thể viết nó theo cách đầu tiên tôi trình bày không?
Cảm ơn Tomasz đã sửa nó. Đối với ví dụ của tôi, chỉ cần làm 'f: => Unit' hoạt động là tốt, nhưng phiên bản Generic là tiện dụng để biết. – npiv