[IOS 로드맵] Value Semantics(+ Reference Semantics)
Value Semantics
var a: Int = 42
var b: Int = a
b = 0
print(a, b)
// Prints "42 0"
결국 값 타입(Value Type)을 말하는 것이다 위의 경우처럼 참조타입이 아니기 때문에 값을 복사하는 식으로 되기 때문에 별도의 변수로 동작해서 값을 바꾸더라도 이전에 복사받은 변수에 영향이 없는 것을 의미한다
이 파트는 POP의 하위문서로 값타입으로 작동하는 의미가 어떤 것인지 설명하기 위해 작성되었다.
↕️
Reference Semantics
class MyReferenceType {
var a: Int
init(a: Int) {
self.a = a
}
}
var R1 = MyReferenceType(a: 1)
var R2 = R1
R2.a = 42
print(R1.a, R2.a)
// Prints "42 42"
class MyReferenceType {
var a: Int
init(a: Int) {
self.a = a
}
}
var R1 = MyReferenceType(a: 1)
var R2 = R1
R2.a = 42
print(R1.a, R2.a)
// Prints "42 42"
클래스의 인스턴스는 refernce type이다
ios 로드맵에 없는 과정같아서 여기서 한번에 정리할 것이다
즉 레퍼런스 타입은 참조하기 때문에 c에서 처럼 포인터 개념을 가져오면 이해 될 수 도있다.
주소를 복사해오기 때문에 그 주소를 변수가 대리인으로써 있는 식으로해서
R2.a에 값을 넣으면 실제로는 R2는 R1의 주소를 가지고 이 R1은 실질적인 물리적인 하드웨어의 주소에 값을 저장한다.
참고 : https://jimmymandersson.medium.com/understanding-swift-value-semantics-d84d57b937a2
Author And Source
이 문제에 관하여([IOS 로드맵] Value Semantics(+ Reference Semantics)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@willis18/IOS-로드맵-Value-Semantics-Reference-Semantics저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)