Class 3

[Swift] struct, class, enum

Q. Swift에서 struct, class, enum 각각의 특징과 차이점을 비교해서 설명해 줘 A. Swift에서 sturct, class, enum은 모두 데이터 모델링을 위한 구조체입니다. 각각의 구조체는 고유한 특징과 용도가 있습니다. Struct(구조체) - 값 타입(Value Type) - 생성자(constructor) 필요 없음 - 상속 불가능 - 구조체 인스턴스를 상수로 선언하면 변경 불가능 - 메모리 할당과 해제가 빠름 - 프로퍼티는 기본적으로 모든 인스턴스에 대해 초기화되어야 함 Class(클래스) - 참조 타입(Reference Type) - 생성자 필요 - 상속 가능 - 클래스 인스턴스를 상수로 선언해도 내부 프로퍼티는 변경 가능 - 메모리 할당과 해제가 느림 - 프로퍼티는 초기화..

iOS/Common 2023.04.10

[Swift] final 왜 막 갖다 붙이나요? (feat. vtable, dynamic dispatch)

우리가 코드를 짜다 보면 이렇게 final 키워드를 붙여서 쓰는 경우가 있잖아요?(반박할 시 코 쓱 닦음) 다른 사람들이 쓰니까 일단 따라 쓰긴 하는데, 이거 왜 쓰는 걸까요? Swift의 LANGUAGE GUIDE 중 Inheritance 항목의 내용을 보시면 final에 대한 설명이 나옵니다. (발 번역 주의) “여러분은 final 키워드를 메소드나 프로퍼티, 또는 서브스크립트 앞에 사용함으로써 오버라이드 되는 것을 막을 수 있습니다. (예시: final var, final func, final class, final subscript). final을 써놓고 오버라이드를 하려고 하면 컴파일 에러가 발생합니다. extension을 사용하는 경우에도 final 키워드를 사용할 수 있습니다. (이하 생략)..

iOS/Common 2022.06.06