-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
is, as의 차이는 무엇인가요? #37
Comments
is 와 as 는 Swift에서 타입 캐스팅을 위한 연산자입니다. |
isis는 타입 체크를 위해 사용하는 코드이다. 객체의 타입이 특정 타입인지를 체크하여 Bool 값으로 반환한다. asas는 타입캐스팅할 때 사용하는 코드이다. 캐스팅의 방향에 따라 업캐스팅과 다운캐스팅으로 나눌 수 있다. 업캐스팅은 상위 타입으로 캐스팅하는 경우이다. 이 경우 항상 성공한다. 다운캐스팅은 하위 타입으로 캐스팅한다. 다운캐스팅은 경우에 따라 실패할 수 있어 옵셔널로 캐스팅하여 캐스팅에 실패할 경우 nil을 할당하는 방법으로 캐스팅할 수 있다. |
is, as는 타입 캐스팅을 위한 연산자입니다. 타입 캐스팅은 클래스, 프로토콜, Any 타입 등 다양한 대상에서 가능합니다. 일반적으로 is는 타입을 확인하는데 사용되고, as는 타입을 변환하는데 사용됩니다. as는 기본적으로 슈퍼클래스(또는 프로토콜)로의 업캐스팅을 수행하며 컴파일 타임에 이뤄집니다. 업캐스팅은 as를 붙이거나 타입을 직접 명시하는 것으로 수행할 수 있습니다. 다운캐스팅은 실패할 수 있기 때문에 |
🙋🏻 답변is, as는 swift에서 타입 검사 혹은 타입 캐스팅을 위해 사용되는 연산자입니다. is 연산자의 경우에는 객체가 특정 타입인지 확인할 때 사용하며, 불리언 값을 반환해줍니다. 그래서 주로 조건문에서 활용됩니다. as 연산자의 경우에는 객체를 특정한 타입으로 캐스팅할때 사용됩니다. 캐스팅 방식에는 세가지가 존재하는데 ?를 붙여 사용하는 옵셔널 다운캐스팅, !를 붙여 사용하는 강제 다운캐스팅, 마지막으로 아무것도 없이 사용하는 방식이 업캐스팅입니다. 업캐스팅의 경우 as를 명시적으로 사용해줘도 되고, 인스턴스에 타입을 명시하여 사용할수도 있습니다. 다운 캐스팅의 경우에는 수퍼 클래스를 서브 클래스의 타입으로 변환할 때 사용합니다. 이 때 다운캐스팅은 실패할 가능성이 있기 때문에 옵셔널 연산자를 사용하여 캐스팅을 해줍니다. 실패할 경우에는 nil을 반환하거나 런타임 에러를 발생시킵니다. 이러한 캐스팅을 사용하는 이유는 다형성을 활용하여 동일한 인터페이스를 이용하되 서로 다른 서브클래스로의 구현을 하기 위함이며, 이를 통해 서브클래스의 고유한 메서드나 속성에 접근할 수 있게됩니다. 🏷️ 키워드
|
No description provided.
The text was updated successfully, but these errors were encountered: