Swiftでpublic/privateなどのアクセスコントロールについて他
今日得たSwiftの知識
public/privateなどのアクセスコントロールはまだ実装されてない
Apple Developer Forumsのスレッドで、もうすぐ実装されると書いてある。
Does Swift have access modifiers? - Stack Overflow
Rangeの仕様がRubyと逆
for i in 1..3 { print( i ) } // => 12 for i in 1...3 { print( i ) } // => 123
Rubyと逆。
プロパティの監視ができる
willset
, didSet
というものがあって、それぞれプロパティに"値を入れる前"、"値を入れた後"の処理を記述できる。
また、didSetの中でoldValue
という変数で直前の値を参照できる。
class ExampleClass { var counter: Int { willSet { println("willSet") } didSet { println("didSet") println("old counter = \(oldValue)") println("current counter = \(counter)") } } init(counter: Int) { // 初期化時は呼ばれない self.counter = 0 } }
Computed Propertiesではプロパティ宣言と同時にgetter, setterが定義できる
class ExampleClass { var base = 0 var counter: Int { get { return base + 1 } set { base += 1 } } }
getterのみの場合、returnだけ書けば良い。
class ExampleClass { var base = 0 var counter: Int { return base + 1 } }
すべてのプロパティに初期値が設定されている場合はイニシャライザを省略可能
The Swift Programming Language: Initialization