관리 메뉴

김종권의 iOS 앱 개발 알아가기

[iOS - swift] Non-nominal type 개념 본문

iOS 응용 (swift)

[iOS - swift] Non-nominal type 개념

jake-kim 2023. 10. 17. 01:59

Non-nominal type 개념

  • Any를 확장하기 위해서 extension Any를 하게되면은 Non-nominal type이라는 컴파일 에러가 발생

  • Non-nominal type이란 swift 내부적으로 struct, enum, class, protocol로 정의하지 않은 타입을 의미
    • Array, Int, Double과 같은 타입들은 extension이 가능한데, 이것들은 Swift내부적으로 struct로 구현되어 있기 때문
    • Optional도 마찬가지로 enum으로 정의되어 있기 때문에 extension이 가능

ex) Double은 내부적으로 struct로 구현되어 있음

@frozen public struct Double {
  ...
}

Non-nominal type 예시

  • 함수 형태: (Int) -> String
  • 튜플 형태: (Int, String)
  • 프로토콜 and 조건: CustomStringConvertible & Error

* 참고

https://stackoverflow.com/questions/24131466/what-is-a-non-nominal-type-in-swift

Comments