class 는 참조, struct 는 값
Class
클래스는 참조이기 때문에 주소 값이 다르므로 name을 받을 수 있다.
class Friend { var name : String func changeName(newName: String) { self.name = newName } init(_ name: String) { self.name = name } } var myFriend = Friend("만쥬") myFriend.name // 만쥬 myFriend.changeName(newName: "개발하는 만쥬") myFriend.name // 개발하는 만쥬
Struct
struct는 값이으로 name을 받을 수 없다.
mutating을 사용하여 name값을 받을 수 있다.
struct BestFriend { var name : String // mutating 키워드로 멤버 변수의 값을 변경하는 메소드 mutating func changeName(newName: String) { self.name = newName } } var myBestFriend = BestFriend(name: "만쥬") myBestFriend.name // 만쥬 myBestFriend.changeName(newName: "개발하는 만쥬") myBestFriend.name // 개발하는 만쥬
반응형