자바와 비교했을 때 크게 다른게 없어보이는 부분은 생략하고 알아둘 필요가 있는 내용만 정리했음
Struct는 자바에서 Class와 크게 다른 점은 없다. 다만 값이 스택에 저장되는 primitive type이다. reference type으로는 자바와 마찬가지로 class 키워드를 이용하면 된다.
struct Test {
var a: Int
init () {
self.a = 100;
}
// 아래 코드는 에러!
func setterA() {
self.a = 200
}
}
자바에서는 getter, setter를 이용해서 값을 할당해주는게 일반적이다. 그러한 형식으로 struct에서 코드를 구성하면 에러가 발생한다.
Cannot assign to property: 'self' is immutable
위 에러는 property를 공부하고 다시 내용을 정리해야겠다. 일단 초기화나 선언 부분을 제외하고서는 변수에 값을 할당할 수 없다는 것만 알아두자. 이러한 특성때문에 swiftUI에서 @State를 이용한다.
struct Test {
var a: Int
init () {
self.a = 100;
}
}
var test: Test = Test()
test.a = 300
print("\(test.a)")
struct 밖에서는 변수에 값을 재할당 할 수 있다. 출력 결과는 300이 나온다.