Programming/iOS
Struct & Class
고양이의시간
2019. 11. 6. 17:54
Struct : value type
Class : reference type
차이점1. struct 는 값이 복사되고, class 는 참조가 된다.
차이점2. struct 가 class 보다 생성이 빠르다.
차이점3. struct 는 상속이 불가능하다.
struct TestStruct {
var name: String
var age: Int
init(name: String, age: Int) {
self.age = age
self.name = name
}
}
class TestClass {
var name: String
var age: Int
init(name: String, age: Int) {
self.age = age
self.name = name
}
}
변수와 초기화 함수를 같은 형태로 정의했을때,
var testStruct: [TestStruct] = []
var testClass: [TestClass] = []
// struct 로 만들때
let startTime = CFAbsoluteTimeGetCurrent()
for _ in 0..<1000000 {
TestStruct.init(name: "structName", age: 0)
}
let durationTime = CFAbsoluteTimeGetCurrent() - startTime
// class 로 만들때
let startTime2 = CFAbsoluteTimeGetCurrent()
for _ in 0..<1000000 {
TestClass.init(name: "className", age: 0)
}
let durationTime2 = CFAbsoluteTimeGetCurrent() - startTime2
Struct durationTime : 0.017071962356567383
class durationTime: 0.1767270565032959
struct 로 모델을 생성하는것이 훨씬 빠르다는 것을 알 수 있다.
참고. 스위프트의 기본 데이터 타입은 struct 로 구현되어 있다.
https://docs.swift.org/swift-book/LanguageGuide/ClassesAndStructures.html
Structures and Classes — The Swift Programming Language (Swift 5.1)
Structures and Classes Structures and classes are general-purpose, flexible constructs that become the building blocks of your program’s code. You define properties and methods to add functionality to your structures and classes using the same syntax you u
docs.swift.org