안녕하세요 Combine의 replaceNil operator 를 공부하는 도중 의문점이 생겨서 질문드립니다.
replaceNil operator 는 말 그대로 nil 대신 들어갈 value를 넣어주는 operator 인데 replace(with: 변수) with 안에 들어갈 값은 optional 값을 넣어주면 안된다고 합니다…
replace(with: "sample" as String?) //에러발생
그런데 이 replaceNil operator 와 ?? operator 와의 차이점은 ?? 은 optional 을 리턴할 수 있다고 합니다.
var sampleText : String? = nil
print( sampleText ?? "replaceNil" as String?)
제가 느낀 바로는 ?? operator 는 unwrapping 의 느낌이 좀 있었는데 optional 을 반환 할 수 있다고 하니 재귀적으로 optional 을 optional 로 처리하고 또 그것을 optional 로 처리하는 무한궤도의 느낌입니다.
혹시 ?? operator 를 사용할 때 Nil 을 대신하는 값으로 또 optional 값을 사용하는 예시가 있을까요??
왜 굳이 이렇게 만들었을지 궁금합니다.