Part11:メソッド

ルビィ「ここまでで、基本的なデータ型と制御構文はわかったよね。次は、プログラム全体の構造化を見ていくよ」

ルビィ「今回はメソッド。他の言語では関数とかサブルーチンとか呼ばれるやつだね」
ヨハネ「関数・・・」
マル「?」
ヨハネ「ヨハネの数学の点数が赤いのもリトルデーモンの証・・・」
マル「それは自業自得ずら」

ルビィ「えっと、メソッドっていうのは処理をひとまとめにして名前を付けたもの。コードに意味付けして分割して、再利用できるようにしたものだよ」

浦の星女学院1年 黒澤ルビィです!

ルビィ「introduceっていうメソッドを作って、それを呼び出してるの。これだけだと、あんまり嬉しくないんだけど・・・」
ヨハネ「何度も同じ処理するのに便利ってところかしらね」
ルビィ「うん。けど、メソッドには引数を渡すことができるの」

浦の星女学院1年 黒澤ルビィです!
浦の星女学院1年 国木田花丸です!
浦の星女学院1年 津島善子です!

ルビィ「こうすると、結構便利そうだよね?」
ヨハネ「し、修正を要求するわ!!」
マル「ヨハネちゃんはほっとくずら」
ルビィ「ルビィたちの名前を、引数としてメソッドに渡してます。それで、3人それぞれの自己紹介が出力されるんだ」

ルビィ「メソッドはただ処理するだけじゃなくて、処理結果を呼び出し元に返すこともできるよ」

浦の星女学院1年 黒澤ルビィです!
浦の星女学院1年 国木田花丸です!
浦の星女学院1年 津島善子です!

ルビィ「さっきのを、メソッドは文字列を返して呼び出し元でputsするようにしただけだけど・・・」
マル「returnすると値を戻せるんだな」
ルビィ「うん。そうすると、呼び出し元のintroduce nameの評価結果がreturnした値になるの」

ルビィ「さっきのコード、こう書き換えても同じ結果になるんだけど・・・」

ルビィ「これはね、引数のデフォルト値を用意したんだ」
ヨハネ「デフォルト値?」
ルビィ「このバージョンのintroduce関数は引数が3つあるよね。けど、呼び出し側では1つしか渡してない。そうすると、あとの2つはメソッド側で用意されたデフォルト値が使われるんだ」
マル「それで浦の星女学院1年生になるんだな」
ルビィ「2つ以上の引数を渡せばそっちが使われるから・・・」

音ノ木坂学院1年 星空凛です!
音ノ木坂学院2年 園田海未です!

ルビィ「こんな風に、渡した値が使われるんだ」

ルビィ「あとは、メソッドの引数の数をその場その場で変えたいことがあるんだけど、そういうのもできるよ」

浦の星女学院1年 黒澤ルビィです!
浦の星女学院1年 国木田花丸です!
浦の星女学院1年 津島善子です!
——————-
浦の星女学院2年 高海千歌です!
浦の星女学院2年 桜内梨子です!
——————-

マル「曜ちゃん・・・」
ヨハネ「彼女は犠牲になったのよ。カプ厨の犠牲に」
ルビィ「そ、そんなんじゃないよっ!」

ルビィ「とにかくっ、引数の数が変わっても、ちゃんと処理できてるのがわかるよね?」
ヨハネ「*nameseachが使えるってことは、これ配列かハッシュなのかしら?」
ルビィ「*names*はね、この場合だと、2番目以降の引数は全部namesっていう配列に入れます、って意味だよ」
マル「オプションの引数とかがある場合に便利そうだな」


ルビィ「メソッドの話はこれでおしまい。次回はいよいよ」
ヨハネ「クラスよねっ!」
マル「嫌な予感しかしないずら・・・」


LINEで送る
Pocket


返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です