ここまで、インスタンス作成はすべて
Helo();というように引数なしで行ってきました。が、インスタンスを作成する際、必要な値などを引数として渡すことができればとても便利ですね。
こうした時に利用されるのが「
イニシャライザ」です。これはインスタンスを作成する際に自動的に呼び出される、初期化処理専用のメソッドです。このイニシャライザは以下のように定義します。
init ( 引数 ){
……初期化処理……
}
func initと書く必要はありません。ただ、
initだけでOKです。イニシャライザは特別なメソッドなので、
funcで定義する必要はないんですね。
この
initの
()に引数を用意すれば、インスタンス作成時に値を渡すことができるようになります。簡単な例を下にあげておきましょう。
ここでは、
Heloクラスの中に
init(#name:String)という形でイニシャライザを用意しています。これにより、インスタンス作成する際には、
Helo(name:"Taro");というように引数を指定して書くようになります。
なお、このイニシャライザの中で、引数に渡された変数
nameを
Heloクラスの
nameプロパティに代入するのに、「
self.name」という書き方をしていますね。この「
self」は、インスタンス自身を示す特別な値です。このように記述することで、「このインスタンス自身の
nameプロパティ」を指定していたのですね。クラス定義ではよく使うものですので、合わせて覚えておくようにしましょう。