Properties
13860 ワード
専攻は何ですか。
クラス、構造体、列挙に関連する値
プログラムの種類
ストレージ構成
Property 、
// 구조체
struct Car {
var model : String = "A6"
let brand : String = "Audi"
}
var car = Car()
car.model = "A7"
car.brand = "BMW" // 에러
// 클래스
class Car {
var model : String
let brand : String
init(){
self.model = "A6"
self.brand = "Audi"
}
}
let car = Car(model: "A6", brand: "Audi")
car.model // 상수로 인스턴스 생성했어도 내부 저장프로퍼티인 model은 값 변경이 가능하다.
car.brand // 에러
Lazy Stored Properties怠惰なストレージ構成
var
です.struct Test {
init(){
print("생성 완료!")
}
}
struct Car {
var model : String = "A6"
lazy var test: Test = Test()
}
var car = Car()
car.test // 이때 생성
lazyを使用しない場合は、インスタンスを作成しながらログを印刷します.lazyを使用すると、インスタンスの作成時に印刷ログは表示されず、呼び出し時に生成されます.えんざんプログラム
Property は、
struct Test {
var width: Double
var height: Double
var result = 0.0
var area: Double {
get {
return width * height
}
set {
result += newValue
}
}
}
var test = Test(width: 1.5, height: 2.5)
print("계산 결과 : \(test.area) ") // get블록 실행되서 1.5 * 2.5값 반환
test.area = 10 // set블록 실행되서 result에 10 저장
test.result // 10
ほとんどは読む前に書いたものです.読み取り専用の場合は、以下のソースコードに示すように、記述を省略できます. var area: Double {
return width * height
}
モニタ
新しい値
lazy
です.newValue
です.struct Car {
var model: String
var brand: String
var state = "브랜드가 없습니다." {
willSet {
print("새로운 브랜드 \(newValue)로 변경되었습니다. ")
}
didSet {
print("이전 브랜드는 \(oldValue) 입니다.")
}
}
}
var car = Car(model: "A6", brand: "Audi")
car.state = "BMW"
car.state = "Benz"
を選択します。
インスタントプログラムとは?
構造体とクラスに属するストレージプログラムと演算プログラム.
を選択します.
oldValue
Type.stored
struct Type {
static var stored: String = "저장 타입 프로퍼티"
static var computed: String {
return "연산 타입 프로퍼티"
}
}
Type.stored // "저장 타입 프로퍼티"
Type.computed // "연산 타입 프로퍼티"
// class 키워드를 사용해서 오버라이드
class FirstClass {
class var first: String {
return "슈퍼클래스"
}
}
class SecondClass : FirstClass {
override static var first: String {
return "서브클래스"
}
}
Reference
この問題について(Properties), 我々は、より多くの情報をここで見つけました https://velog.io/@kiwoo93/Propertiesテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol