Language/Swift-Basic

Swift - 스트럭트 Mutating

Jessi :D 2022. 3. 1. 03:22

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

 

 

반응형