Trong Rails, người ta có thể sử dụng:Có tương tự trong Scala cho phương thức "trả về" của Rails không?
returning Person.create do |p|
p.first_name = "Collin"
p.last_name = "VanDyck"
end
Tránh phải làm điều này:
person = Person.create
person.first_name = "Collin"
person.last_name = "VanDyck"
person
Tôi nghĩ rằng cách cũ là sạch và ít lặp đi lặp lại. Tôi thấy bản thân mình tạo ra phương pháp này trong các dự án Scala của tôi:
def returning[T](value: T)(fn: (T) => Unit) : T = {
fn(value)
value
}
Tôi biết rằng nó là của tiện ích phần nào hạn chế do xu hướng của các đối tượng là bất biến, nhưng ví dụ làm việc với Lift, sử dụng phương pháp này trên lớp Mapper hoạt động khá tốt.
Có tương tự Scala để "trả lại" mà tôi không biết? Hoặc, liệu có cách tương tự để làm điều này trong Scala có thành ngữ hơn không?
Cảm ơn bạn đã trả lời. Tôi đã tìm ra điều này có lẽ là trường hợp nhưng sau khi học cách sử dụng Option/Box với map/flatMap/foreach, tôi đã háo hức tìm ra cách Scala để tiếp cận vấn đề. – Collin