CodeZine(コードジン)

特集ページ一覧

にゃんこなサンプルコードで学ぶSwiftのクラスとメソッド

Objective-CユーザーのためのSwift入門 第3回

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2015/01/15 14:00
目次

メソッド

 メソッドとは、簡単に言うとクラスの持つデータ処理の方法のことです。メソッドも、クラスの定義と同様に1ファイル内で表せます。

メソッドの定義

 メソッドは「func」で定義します。戻り値のないメソッド/戻り値のあるメソッドでそれぞれ定義が異なります。メソッドの書式は次のようになります。

書式2 メソッドの定義
// 戻り値のないメソッド
func メソッド名( [[ラベル] 引数[:型],])
{
   // 処理
}

// 戻り値のあるメソッド
func メソッド名( [[ラベル] 引数[:型],])->戻り値の型
{
    // 処理
    return 戻り値
}

 初期化処理のinitメソッドのみ、funcの記述は不要です。初期化処理以外のメソッドでは、funcを記述しメソッドの定義であることを明記します。

 ラベルと引数の型は省略できます。ラベルは、引数を名前付き引数として記述したいときに利用します。引数は連載第1回で説明した変数の定義と同じように指定します。戻り値のないメソッドの例を以下に示します。

リスト5 戻り値のないメソッドの例(Cat.swift抜粋)
// 縄張りと好物をセット
func setInfo(nawabari territory:String, koubutsu favorite:String)
{
     Territory = territory;
     Favorite = favorite;
}

 戻り値のあるメソッドの場合は、戻り値の型を「->」で指定し、型に準じた値をretuen文で返します。

リスト6 戻り値のあるメソッドの例(Cat.swift抜粋)
// 名前を返す
func getName()->String
{
    return Name
}
// 年齢を返す
func getAge()->Int
{
    return Age
}

 型と異なる値は返すことができません。プログラム内に、メソッドで指定した型と異なる型を返す間違いがあると、実行前にXcodeがエラーのある行をハイライトします。

引数のラベルを省略する場合

 メソッドの定義でラベルを省略できることは前項で触れました。ラベルの省略については、Appleのプログラムの観点から見ると、「ラベルと引数が同じ場合に、ラベルを省略できる」と考えられています。ラベルが省略されると、2つ目以降の変数ではラベルが省略されると引数名がラベルとなります。具体的には、次の例のようになります。

リスト7 引数が2つあるメソッドの例(Cat.swift抜粋)
// 縄張りと好物をセット ラベルを省略した場合
func setInfo(territory:String, favorite:String)
{
    Territory = territory;
    Favorite = favorite;
}
リスト8 引数が2つあるメソッドの呼び出し(ViewController.swift抜粋)
// 縄張りと好物をセット
c.setInfo("公園", favorite: "カリカリ")

 複数のメンバーで開発する場合等、最初の引数がないままだとプログラムの意味がわかりにくい場合もあります。プログラムの可読性を上げるために、最初の引数にも引数名をラベルとしてつけておくほうが便利です。そのような場合には、ラベルと引数が同じ場合にもラベルを残すという意味で、「#」を最初の引数の前につけておきます。

リスト9 最初の引数にラベルを付ける例(Cat.swift抜粋)
// 縄張りと好物をセット ラベルを省略しない場合
func setInfo(#territory:String, favorite:String)
{
    Territory = territory;
    Favorite = favorite;
}
リスト10 最初の引数にラベルを付けるメソッドの呼び出し(ViewController.swift抜粋)
// 縄張りと好物をセット
c.setInfo(territory:"公園", favorite: "カリカリ")

 上記のように「#」を最初の引数につけたメソッドでは、引数名をラベルとして利用できます。ただし、initメソッドだけは例外的に「#」をつけずに最初の引数名をラベルとして利用できます。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

連載:Objective-CユーザーのためのSwift入門

著者プロフィール

  • WINGSプロジェクト 片渕 彼富(カタフチ カノトミ)

    <WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂...

  • 山田 祥寛(ヤマダ ヨシヒロ)

    静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for ASP/ASP.NET。執筆コミュニティ「WINGSプロジェクト」代表。 主な著書に「入門シリーズ(サーバサイドAjax/XM...

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5