Khi lần đầu tiên tôi bắt đầu nhìn vào Scala, tôi thích giao diện cho sự hiểu biết. Chúng dường như giống như các vòng lặp foreach mà tôi đã từng sử dụng từ Java 5, nhưng với các hạn chế về chức năng và rất nhiều tính độc đáo của cú pháp ngọt ngào.Scala's for-comprehensions: tính năng quan trọng hoặc cú pháp đường?
Nhưng như tôi đã ghi nhận rõ phong cách Scala, tôi thấy rằng mỗi khi tôi có thể sử dụng một phi comprension Tôi đang sử dụng map
, flatMap
, filter
, reduce
và foreach
để thay thế. Ý định của mã có vẻ rõ ràng hơn với tôi theo cách đó, với ít bất ngờ tiềm ẩn hơn, và chúng thường là mã ngắn hơn.
Theo như tôi biết, việc hiểu thấu đáo luôn được biên dịch thành các phương pháp này, vì vậy tôi tự hỏi: chúng thực sự là gì? Tôi có thiếu một số chức năng revalation (nó sẽ không phải là lần đầu tiên)? Do for-comprehensions làm một cái gì đó các tính năng khác có thể không, hoặc ít nhất sẽ được nhiều clumsier tại? Chúng có tỏa sáng trong một trường hợp sử dụng cụ thể không? Nó thực sự chỉ là vấn đề về sở thích cá nhân?
này gần như là một bản sao của http://stackoverflow.com/questions/1052476/can-someone-explain-scalas-yield. Câu hỏi đó tự hỏi 'năng suất' đã làm gì, điều này tự hỏi mục đích của nó là gì. Các câu trả lời là như nhau. –