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
Uh oh!
There was an error while loading. Please reload this page.
-
내용
우리는 언래핑을 할 때 안전하게 진행하기 위해서 옵셔널 바인딩을 합니다.
그리고우리는 결과적으로 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