2015-02-12 16 views
6

Trong Scala tôi có thể viết một cái gì đó như thế này:Kotlin: làm thế nào để trả lại một số giá trị từ phạm vi?

val something = { 
    val temp1 = ... 
    val temp2 = ... 
    temp1 + temp2 
} 

Theo như tôi biết cách tốt nhất để làm điều tương tự trong Kotlin là:

val something = { 
    val temp1 = ... 
    val temp2 = ... 
    temp1 + temp2 
}() 

Trên thực tế đó là một lambda với kiểu Unit -> Int được gọi ngay lập tức. Tôi tự hỏi mã này có thể được cải thiện bằng cách nào đó không? Có lẽ có một chức năng được xây dựng trong đó cho phép tôi viết val something = block {...} hoặc một cái gì đó như thế này?

Trả lời

13

Bạn có thể sử dụng chức năng run, như:

val something = run { 
    val temp1 = ... 
    val temp2 = ... 
    temp1 + temp2 
} 
+0

Đó là điều tương tự (thậm chí nhiều tiết) so với những gì OP gửi? – monkjack

+0

Bây giờ bạn đã chỉnh sửa nó, đó chính xác là những gì anh ấy đang tìm kiếm. – monkjack

+0

Cảm ơn bạn đã nhận xét! – bashor

Các vấn đề liên quan