let
: 변경할 수 없는 상수(Constant) 선언시 사용var
: 변경할 수 있는 변수(Variable) 선언시 사용struct
, class
, enum
등 클래스나 구조체 내에서 많이 사용되지만,struct Rectangle {
var width: Double
var height: Double
// 연산 프로퍼티
var area: Double {
// getter
get {
return width * height
}
// setter (optional)
set {
// 가로와 세로의 비율을 유지하면서 면적에 맞게 크기를 조절
height = sqrt(newValue)
width = newValue / height
}
}
}
get
을 생략할 수도 있다.struct Circle {
var radius: Double
// 읽기 전용 연산 프로퍼티 (setter 생략)
var diameter: Double {
return radius * 2
}
}
newValue
라는 암시적 매개변수를 사용해 외부에서 전달된 값을 나타낸다.struct Square {
var sideLength: Double
// getter와 setter가 있는 연산 프로퍼티
var perimeter: Double {
get {
return sideLength * 4
}
set {
sideLength = newValue / 4
}
}
}
newValue
대신 다른 이름을 지정할 수도 있다 - 'set
(이름)'var area: Double {
set(newArea) {
// newArea를 사용하여 로직 처리
}
}
문제 풀이는 이 글에서 계속 - 논리 연산자에 대한 내용도 여기 있음