mutating
mutating์ ๊ฐ ํ์ ์ธ ๊ตฌ์กฐ์ฒด๋ ์ด๊ฑฐํ์ ๋ฉ์๋์์ ํด๋น ์ธ์คํด์ค ํ๋กํผํฐ๋ฅผ ์์ ํ ์ ์๋๋ก ํ์ฉํ๋ ํค์๋์ ๋๋ค.
struct Person {
var name: String
mutating func changeName() {
name = "Lee"
}
}
var person = Person(name: "Kim")
person.changeName()
print(person.name) // Lee
๊ตฌ์กฐ์ฒด๋ ์ด๊ฑฐํ์์๋ง mutating์ ์ฌ์ฉํ๋ ์ด์
๊ตฌ์กฐ์ฒด๋ ์ด๊ฑฐํ์ ์ธ์คํด์ค ๋ฉ์๋์ mutating์ ์ฌ์ฉํ์ง ์์ผ๋ฉด ์ปดํ์ผ ์๋ฌ๊ฐ ๋ฐ์ํฉ๋๋ค.
๊ตฌ์กฐ์ฒด์ ์ด๊ฑฐํ์ ๊ฐ ํ์ ์ด๊ณ , ๊ฐ ํ์ ์ ์ธ์คํด์ค๋ฅผ ๋ณต์ฌํ๋ฉด ์๋ณธ ๋ฐ์ดํฐ๋ ๊ทธ๋๋ก์ด๊ธฐ ๋๋ฌธ์ ํ๋กํผํฐ๋ฅผ ๋ณ๊ฒฝํ๋ ค๊ณ ํด๋ ์์ฉ์ด ์๊ธฐ ๋๋ฌธ์ ๋๋ค.