iOS

Swift Final Keyword

@서비 2022. 4. 25. 22:39

 

1. 정의

 

swift 에는 final이라는 키워드를 제공하는데 override를 막는 키워드이다. 즉 해당 키워드를 작성하면, 다른 class에서 상속받지 못한다.

 

2. 이점

일반적으로 swift 에서는 상속을 고려하여 runtime에 어떤 메서드를 실행할지를 결정하는 반면에 final로 작성해두면, 컴파일 타임에 어떤 함수를 사용할지 (어디서) 결정할 수 있기 때문에 판단 과정이 생략되고 이로 인해 퍼포먼스에 이점이 있다고 할 수 있다. 참고로 만약 final로 선언하고 override를 하게 되면 컴파일 타임 에러가 발생한다.

 

 

 

참고

 

https://velog.io/@ryan-son/Swift-final-%ED%82%A4%EC%9B%8C%EB%93%9C-%EC%99%9C-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94%EA%B1%B8%EA%B9%8C

https://github.com/apple/swift/blob/main/docs/OptimizationTips.rst#advice-use-final-when-you-know-the-declaration-does-not-need-to-be-overridden