Elm- Records 3일차
2313 단어 elmbeginnersfunctionalwebdev
기록
리차드 펠드먼에 따르면,
Records are plain, immutable data.
Javascript 객체와 문법적으로 유사하지만 완전히 동일하지는 않습니다. 예를 들어
prototype
및 없음 this
이 있습니다. 제가 정말로 이야기하고 싶은 것은 레코드 업데이트입니다.레코드 업데이트는 단순히 Elm에서 레코드의 속성을 변경하는 방법을 나타냅니다. 여기서 "돌연변이"라는 용어는 일종의 잘못된 명칭입니다. 레코드 업데이트는 이전 레코드를 변경하지 않고 대신 이전 레코드를 기반으로 새 레코드를 만듭니다. 예를 들어 다음과 같은 elm 코드가 있습니다.
record = { a = 1, b = 2 }
newRecord = { record | a = 5 }
위의 코드는 변경되지 않습니다
record
. Javascript에서 개체를 변경하기 위한 .
연산자와 매우 유사해 보이지만 동일하지는 않습니다. 이것은 spreading
record
에서 newRecord
에 훨씬 더 가깝고 필요한 필드를 업데이트합니다. 이 동작에 대해 생각하는 방식은 Javascript에서 다음과 같습니다.const record = Object.freeze({ a: 1, b: 2 });
const newRecord = Object.freeze({ ...record, a: 5 });
여기서는
Object.freeze
를 사용하고 있는데, 두 경우 모두 반환된 객체가 불변이어야 하기 때문입니다. 두 경우 모두 실제 돌연변이가 발생하지 않는다는 것을 알 수 있습니다. 이는 값을 참조로 전달하는 데 따른 부작용으로 인한 많은 문제를 줄여주기 때문에 좋습니다.이것은 매우 흥미 롭습니다!
Reference
이 문제에 관하여(Elm- Records 3일차), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/dialaeke/day-4-of-elm-records-4920텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)