2008-11-18 15 views

Trả lời

14

Thực tế có: nó được gọi là "val". :-)

({ x: Double => 
    val y = x + x 
    y * y 
})(3) 

Các niềng răng là tất nhiên tùy chọn ở đây, tôi chỉ thích họ ngoặc khi xác định các chức năng (sau khi tất cả, đây không phải là Lisp). Từ khóa val định nghĩa một ràng buộc mới trong phạm vi từ vựng hiện tại. Scala không ép buộc người dân địa phương xác định phạm vi của riêng họ, không giống như các ngôn ngữ như Lisp và ML.

Thực tế, var cũng hoạt động trong mọi phạm vi, nhưng được coi là kiểu xấu để sử dụng.

+0

Cảm ơn :) Tôi nghĩ tôi đã cố gắng đó, nhưng tôi phải đã nhận được cú pháp sai. Có cách nào để có tất cả trong một dòng? – namin

+0

@ Germán có phiên bản một dòng. –

6

OK, đây là một trong lót VỚI các ràng buộc:

({ x:Double => val y = x + x; y * y })(3) 

Cheers