1. class / struct / enum 비교
- class : 참조 / 상속 가능 / 확장 가능
- struct: 값 / 상속 불가 / 확장 가능
- enum: 값 / 상속 불가 / 확장 가능
- 스위프트는 구조체 / 열거형 선호
- Apple framework의 경우 대부분 class 사용
2. 구조체는 언제 사용하는가
- 연관된 몇몇의 값들을 모아 하나의 데이터 타입으로 표현하고 싶은 경우
- 다른 객체 또는 함수 등으로 전달될 때 참조가 아닌 복사를 원할때
- 자신을 상속할 필요가 없거나 자신이 다른 타입을 상속 받을 필요가 없을 때
3. value vs reference
- value : 데이터를 전달할 때 값을 복사하여 전달
- reference: 데이터를 전달할 때 값의 메모리 위치를 전달
struct Value {
var pro = 1
}
class Ref {
var pro = 1
}
let firstSt = Value()
var secondSt = firstSt
secondSt.pro = 2
prict(secondSt.pro)
prict(firstSt.pro)
let firstClass = Ref()
let secondClass = firstClass
secondClass.pro = 2
print(firstClass.pro)
print(secondClass.pro)
4. 스위프트의 데이터 타입 비교
public struct Int
public struct Double
public struct String
public struct Dictionary<Key: Hashable, Value>
public struct Array<Element>
public struct Set<Element: Hashable>