Toy Project/Swift Language Syntax

14. Swift Class

개발자킹콩 2021. 1. 22. 00:24

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