SwiftUI mutating은 무엇이고 어떻게 사용하는지 (2020년 튜토리얼)
만약 우리가 클래스의 어떤 변수를 바꾸려고 시도한다면, 그것은 매우 간단하다
class Employee {
var name : String
var teamName : String
init(name: String, teamName: String) {
self.name = name
self.teamName = teamName
}
func changeTeam(newTeamName : String){
self.teamName = newTeamName
}
}
var emp1 = Employee(name : "Suneet", teamName:"Engineering")
print(emp1.teamName) //Engineering
emp1.changeTeam(newTeamName : "Product")
print(emp1.teamName) //Product
모든 값 형식에서 같은 동작을 시도하면 컴파일 오류가 표시됩니다.
struct Employee {
var name : String
var teamName : String
init(name: String, teamName: String) {
self.name = name
self.teamName = teamName
}
func changeTeam(newTeamName : String){
self.teamName = newTeamName
//cannot assign to property: 'self' is immutable
}
}
아래가 표시됩니다.
cannot assign to property: 'self' is immutable
Struct는 값 유형이므로 속성을 직접 수정할 수 없습니다.따라서 컴파일러는 우리에게 다음과 같은 수정을 하라고 알릴 것이다
mark method 'mutating' to make 'self' mutable
이것은 값 유형에 어떤 함수에 돌연변이 키워드를 추가하면 변수를 수정할 수 있음을 명확하게 지적한다.내부에서, 우리가 돌연변이 값 형식을 시도할 때, 그 값은mutate가 가지고 있지 않지만, 그 값의 변수는mutate가 가지고 있습니다.
struct Employee {
var name : String
var teamName : String
init(name: String, teamName: String) {
self.name = name
self.teamName = teamName
}
mutating func changeTeam(newTeamName : String){
self.teamName = newTeamName
}
}
var emp1 = Employee(name : "Suneet", teamName:"Engineering")
print(emp1.teamName) //Engineering
emp1.changeTeam(newTeamName : "Product")
print(emp1.teamName) //Product
값 유형
참조 유형
참조 파일
SwiftUI 자습서 및 코드 관심 분야 더 보기
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Swift의 패스트 패스Objective-C를 대체하기 위해 만들어졌지만 Xcode는 Objective-C 런타임 라이브러리를 사용하기 때문에 Swift와 함께 C, C++ 및 Objective-C를 컴파일할 수 있습니다. Xcode는 S...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.