Trong Chương 3 của Programming Scala, tác giả đưa ra hai ví dụ về các vòng lặp/để hiểu, nhưng chuyển đổi giữa việc sử dụng() và {} 's. Tại sao trường hợp này lại xảy ra, vì chúng vốn giống như chúng đang làm điều tương tự vậy? Có lý do nào không? breed <- dogBreeds
là trên dòng thứ 2, ví dụ # 2?Hiểu Phạm vi về Vòng lặp của Scala (Để hiểu)
// #1()'s
for (breed <- dogBreeds
if breed.contains("Terrier");
if !breed.startsWith("Yorkshire")
) println(breed)
// #2 {}'s
for {
breed <- dogBreeds
upcasedBreed = breed.toUpperCase()
} println(upcasedBreed)
Một tính năng WTF khác của Scala. Một ngôn ngữ tuyệt vời, nhưng rải rác với đường không chỉ là không cần thiết, mà còn cho là có hại. – andyczerwonka
Suy luận Semicolon không đến miễn phí. Lần khác nó cắn là 'val a = 1 + 2 + 3 + 4'. Điều này được phân tách thành 'val a = 1. + (2). + (3); 4.unary _ +() ' –
retronym
Lưu ý rằng ví dụ đầu tiên không biên dịch. – retronym