다음 개념을 올바르게 이해했는지 명확히하고자합니다.계산 된 속성의 장점 (gettable 만 해당) 대 저장된 속성
내 목표는 var sayGoodMorningToUser
변수에 String
을 저장하는 것이라고 가정합니다.
var sayGoodMorningToUserStored = greeting + username
대
:문자열은 내가 저장된 속성 대 계산 된 속성을 사용하는 경우는 즉, 무슨 상관입니까? 즉
var greeting = "Good morning, "
var username = "Mike"
두 개의 변수로 구성되어 있습니다
var sayGoodMorningToUserComputed:String {
return greeting + username
}
내가이 두 가지 접근법 사이에서 보는 유일한 차이점은 누구나 변경할 수 있다는 것입니다. sayGoodMorningToUserStored의 값은 쉽고 직접 저장됩니다 (예 : 사람들이 대신 단순히 변수를 계산하는 이유
var sayGoodMorningToUserComputed = "Hallo" //this would cause an error
그렇지 않으면 나는 이해할 수 없다 : 단순히 새로운 문자열 값으로 설정할 수 없기 때문에, sayGoodMorningToUserComputed 직접 수정할 수 없습니다 변수 반면
var sayGoodMorningToUserStored = "myNewChangedValue"
를 작성하여 쓰기
var sayGoodMorningToUserStored = greeting + username.
내가 제대로 이해한다면 누구나 설명 할 수 있습니까? 또는 계산 된 변수와 저장된 값의 장점이 있습니까?
여기에서 설정 가능한 변수를 논의하는 것이 범위를 벗어날 수 있으므로 내 질문에 gettable 변수 만 제한하고 싶습니다.
계산 된 속성의 목적은 한 번 선언하고 '사용자 이름'이 변경되면 계산 된 "인사말"속성이이를 반영하도록 자동으로 업데이트됩니다. 그래서'username'이 변경되면,'sayGoodMorningToUserStored' 업데이트를 기억할 필요가 없습니다. 코드의 다른 부분을 참조하면'sayGoodMorningToUserStored'가 처음 선언되었을 때의'username'보다는'username'의 현재 값을 자동으로 반영합니다. – Rob
내가 생각할 수있는 가장 큰 차이점은 프로토콜 및 프로토콜 확장입니다. 프로토콜을 사용하면 상태를 유지할 수 없으므로 계산 된 값이 가장 좋습니다. – jonmecer
@ 피산 당신의 질문이 만족 스럽다면 받아 들일만한 질문을 적어주세요. – Alexander