Trong Scala (2.9.2) Tôi cố gắng để tạo ra một chức năng cung cấp một số giá trị khác khi truy cậpScala bởi các thông số tên với nhiều danh sách đối số và tách lạng bộ
() => Any
Tôi nghĩ rằng tôi đã làm thành công này thông qua một theo tên/giải pháp currying:
def byName(theValue : => Any)() : Any = theValue
val myHolder = byName(myValue)_
Vì vậy, chủ sở hữu của tôi là đúng loại. Tuy nhiên tôi thấy rằng trong quá trình tạo hàm curried này, tham số name được đánh giá. Nếu tôi làm như sau thay vào đó, nó hoạt động như dự định:
def byName(theValue : => Any) : Any =() => theValue
val myHolder = byName(myValue)
Tôi kết luận một số phần của quy trình currying là tham chiếu danh sách tham số đầu tiên và kích hoạt đánh giá. Ai có thể xác nhận rằng và/hoặc giải thích lý do tại sao hoặc nếu có bất kỳ hướng dẫn xung quanh bằng cách sử dụng các thông số tên với nhiều danh sách tham số?
Tôi tin rằng lỗi là: https://issues.scala-lang.org/browse/SI-302 – Steve
Cũng được phát hiện. Từ các ý kiến có vẻ như nó đã được sửa trong scala 2.10-M4. –
Hoàn hảo - cảm ơn bạn đã làm rõ. –