Shadowing 에 대해서 생각해보자 #12
hyun99999
started this conversation in
Show and tell
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
내용
우리는 언래핑을 할 때 안전하게 진행하기 위해서 옵셔널 바인딩을 합니다.
그리고우리는 결과적으로 x 라는 이름의 새 상수를사용하게 됩니다.
이 작업을 Shadowing 이라고 합니다. (새로운 상수가 언래핑 하고자 했던 옵셔널 변수의 그림자와 같기 때문이라고 합니다.)
실제로 우리가 사용하는 변수의 이름은 더 길고 때로는 훨씬 더 깁니다. 예를들어
이러한 긴 이름의 옵셔널 변수는 확정된 언래핑 변수 코드를 생성합니다. 즉, 어쩔 수 없이 긴 변수명을 두번이나 사용하게 된다는 것이지요.
그러면 이름을 줄이면 되는 것 아닐까요?
이로써 date 로 변수명의 길이를 줄였지만, date 가 무엇을 의미하는지는 불분명 해졌습니다.
적합한 네이밍은 가독성이 좋은 코드를 위해서는 중요한 역할을 합니다. 그래서 옵셔널 변수에 대한 새로운 상수의 변수명을 지정하는 행위 즉, Shadowing 에 대해서 위와 같이 고찰해볼 사항들이 있습니다.
이제 본론입니다! Swift 5.7 은 이러한 상황을 처리하는 흥미로운 새 접근 방식을 가집니다.
Shortening Shadowing
위의 코드를 아래와 같이 짧게 작성할 수 있습니다. 와우
변수명이 길어질 경우, 이 방식은 훨씬 유용할거에요.
하지만, Swif 5.7 에서 허용하는 이러한 방식이 단점도 있습니다.
단점
우리는 앞서 길더라도 = x 를 사용해서 context 즉, 문맥을 제공할 수 있었어요. 하지만 새로운 방식은 x 를 새로운 변수처럼 느끼게 해줍니다.
앞서 Shadowing 의 단점 중 중복 변수를 만드는 점도 있었습니다. 그러나 이 새로운 방식은 이러한 Shadowing 을 막지 못하고, optional 변수를 숨기는 결과를 제공하게 됩니다.
앞으로 Swift 5.7 버전이 적용되면 사용하면서 느껴봐야할 것 같다.
출처:
Swift 5.7: Unwrapping Optionals Gets an Improvement
swift-evolution/0345-if-let-shorthand.md at main · apple/swift-evolution
Beta Was this translation helpful? Give feedback.
All reactions