Struct와 Class를 정의하면서 차이를 살펴보자
Structure는 property의 값 변경을 만드는 함수는 mutating 키워드를 이용해야한다.
Class의 경우 할당될 때 실행되는 생성자를 선언해야 한다.
Structure도 생성자 init()를 정의할 수 있다.
struct PersonStruct {
var firstName: String
var lastName: String
var fullName: String {
return "\(firstName) \(lastName)"
}
init(firstName: String, lastName: String){
self.firstName = firstName
self.lastName = lastName
}
mutating func uppercasedName() {
firstName = firstName.uppercased()
lastName = lastName.uppercased()
}
}
class PersonClass {
var firstName: String
var lastName: String
var fullName: String {
return "\(firstName) \(lastName)"
}
init(firstName: String, lastName: String){
self.firstName = firstName
self.lastName = lastName
}
func uppercasedName(){
firstName = firstName.uppercased()
lastName = lastName.uppercased()
}
}
var personStruct1 = PersonStruct(firstName: "Jason" , lastName: "Lee")
var personStruct2 = personStruct1
var personClass1 = PersonClass(firstName: "Jason", lastName: "Lee")
var personClass2 = personClass1
personStruct2.firstName = "CHO"
personClass2.firstName = "CHO"
print(personStruct1.fullName) // Jason Lee
print(personStruct2.fullName) // CHO Lee
print(personClass1.fullName) // CHO Lee
print(personClass2.fullName) // CHO Lee
'Toy Project > Swift Language Syntax' 카테고리의 다른 글
16. Swift Initializer(생성자) (0) | 2021.01.22 |
---|---|
15. Swift Class Inheritance (상속) (0) | 2021.01.22 |
13. Swift Method extension (0) | 2021.01.22 |
12. Swift Method (0) | 2021.01.22 |
11. Swift Property(속성) (0) | 2021.01.21 |