Tôi đang tìm một cách súc tích để cập nhật giá trị lồng nhau bên trong bản ghi trong Elm (0,18).Cách ngắn gọn để cập nhật giá trị lồng nhau bên trong bản ghi trong Elm (0,18)
Với ví dụ sau:
person = { name = "Steven", address = { country = "Spain", city = "Barcelona" } }
tôi có thể cập nhật person.name để "Steve" bằng cách sử dụng biểu thức sau đây:
{ person | name = "Steve" }
Tuy nhiên, tôi đang tìm một cách để cập nhật một lồng nhau giá trị. Ví dụ, tôi muốn cập nhật person.address.city thành "Madrid". Tôi đã thử các cách sau:
{ person | address.city = "Madrid" }
{ person | address = { address | city = "Madrid" } }
{ person | address = { person.address | city = "Madrid" } }
Trình biên dịch từ chối tất cả các biến thể này. Tùy chọn hợp lệ ngắn nhất tôi thấy là:
let personAddress = person.address in { person | address = { personAddress | city = "Madrid" } }
Điều này có vẻ hơi quá nhiều mã chỉ để cập nhật giá trị lồng nhau, Bạn có biết cách nào tốt hơn/ngắn hơn để đạt được điều đó không?
sử dụng elm-monocle https://github.com/toastal/toast.al-blog/blob/master/posts/code/2017-01-13-playing-with-prisms-for-the- not-so-isomorphic.md – rofrol