見出し画像

この世でいちばんわかりやすいiPhoneアプリ開発のおはなし【メソッドの基本】

関数と構造体について知っておくと、このページの理解が深まります。関数は、こちらのページで説明しています。構造体は、こちらのページで説明しています。

インスタンスに備わる機能

定数および変数と同様に、型に関数を定義することもできます。 型に定義された関数は、インスタンスに備わる機能として呼び出すことができます。

struct Planet {
   func description() {
       print("Planets in Our Solar System are eight.")
   }
}

型に定義された関数を メソッド といいます。 インスタンスのメソッドは、プロパティへのアクセスと同様に、ドットシンタックスで呼び出します。

var earth = Planet()
var mars = Planet()

earth.description()    // Prints Planets in Our Solar System are eight.
mars.description()     // Prints Planets in Our Solar System are eight.

上のコードは、地球と火星のインスタンスからdescription()メソッドを呼び出しています。 ただし、メソッドを実行しても同じ結果に違いはありません。

型のボディでは、selfキーワードを使って「自身のインスタンス」を参照できます。 description()メソッドが「インスタンスごとに正しい説明文」を出力できるように、Planet型をカスタムしましょう。

struct Planet {
   var name = ""
   var diameter = 0
   
   func description() {
       print("The \(self.name) has a diameter of \(self.diameter) km. ")
   }
}

上のコードは、selfキーワードで参照するインスタンスのプロパティを利用することで、メソッドがインスタンス固有の実行結果を出力します。

各インスタンスのプロパティ値を更新してから、メソッドを呼び出します。

earth.name = "Earth"
earth.diameter = 12756
mars.name = "Mars"
mars.diameter = 6779
earth.description()
mars.description()

description()メソッドを呼び出すと、地球と火星に関する説明がコンソールに出力されます。 なお、関数と同様に、インスタンスのメソッドもパラメータを受け取ったり、値を返すことができます。

この記事が気に入ったらサポートをしてみませんか?