swift

값 타입의 널 처리 주의할 점

코코넛딩 2025. 1. 23. 07:30
if let intValue = self.intValue { //self.intValue는 값타입 이기 때문에 intValue는 복사된 값이다.
	intValue += 3 
	self.intValue = intValue // 복사된 값이기 때문에 다시 할당 해줘야함
}

//guard 도 마찬가지
guard let intValue = self.intValue else { return }

intValue += 3

self.intValue = inValue
if let reference = self.reference { // self.reference는 참조 타입이라서 원본이 전달된다.
	reference.setProperty(frog: "개구리") // self.reference = reference 하지 않아도 된다.
}

//guard도 마찬가지
guard let reference = self.reference else { return }

reference.setProperty(frog:"개구리")

 

if let이나 guard let을 할 때 값 타입은 복사본이 전달되므로 다시 할당해주어야한다.