10-3. グローバル変数とゾーン変数


グローバル変数とゾーン変数


Propertyを計算および観察するために、前に説明した機能は、グローバル変数および領域変数でも使用できます.グローバル変数は、関数、メソッド、モジュール、またはタイプコンテキストの外部で定義された変数です.領域変数は、関数やメソッドなどの内部で定義される変数です.保存された変数(保存されたプログラムなど)は、タイプの値にリポジトリを提供し、値の設定とクエリーを許可します.グローバル定数と変数の計算は常に遅く,遅延記憶のプログラムと類似しているため,不活性は必要ない.しかし,領域定数や変数は決して緩やかに計算されない.
func someFunction() {
	@SmallNumber var myNumber : Int = 0
    
    myNumber = 10
    //10의 값을 가진다.
    myNumber = 24
    //이제 12의 값을 가진다. 프로퍼티 래퍼가 24보다 큰 숫자를 허용하지 않기 떄문이다.

タイプのプロパティ


インスタンス・プログラムは、特定のタイプのインスタンスに属するプログラムです.タイプの新しいインスタンスを作成するたびに、他のインスタンスとは異なる一意のproperty値が設定されます.さらに、このタイプは、インスタンスではなくタイプ自体に属するpropertyを定義することができる.これをタイプpropertyと呼び、インスタンスpropertyは特定のタイプのインスタンスに属するpropertyです.タイプの新しいインスタンスを作成するたびに、他のインスタンスとは異なる一意のproperty値が設定されます.さらに、このタイプは、インスタンスではなくタイプ自体に属するpropertyを定義することができる.これをタイプ番組と言います.
タイプpropertyはstaticキーワードとして宣言され、すべてのインスタンスの一般的な値を定義するのに役立ちます.クラスタイプの計算されたPropertyはclassキーワードで親クラスの実装を再定義できます.
struct someStructure {
	static var storedTypeProperty = "Some value"
    static var computedTypeProperty : Int {
    	return 1
    }
}

enum someEnum {
	static var storedTypeProperty = "Some value"
    static var computedTypeProperty : Int {
    	return 6
    }
}

class someClass {
	static var storedTypeProperty = "Some value"
    static var computedTypeProperty : Int {
    	return 27
    }
    class var overrideableComputedProperty : Int {
    	return 107
    }
}
タイプpropertyは、インスタンス内のpropertyのようにポイントを介してクエリーと設定を構築できます.特徴は括弧を明記しないことです.
print(SomeStructure.storedTypeProperty)
//some Value를 출력한다.
someStructure.storedTypeProperty = "Another value"
//이제 Another value 값을 가진다.
print(someStructure.storedTypeProperty)
//어나더 밸류를 출력한다.

print(someEnum.storedTypeProperty)
//some Value를 출력한다.