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
// 개발하는 만쥬
반응형