SyuchiNikuRingの備忘録

お勉強したことをまとめておく場所。中の人の理解や感覚で書いているから不正確なことも多いかも。

Ruby入門season2~メソッド~

やっほー。今回はメソッドのお話。

以前、Javaオブジェクト指向の件でも書きましたが、Rubyオブジェクト指向型言語です。なのでメソッドがあります。

syuchinikuring.hatenablog.com

 

メソッドの定義の仕方は簡単です。def と end でやりたい処理を挟むだけ。

f:id:SyuchiNikuRing:20180907180029p:plain

実行します。

f:id:SyuchiNikuRing:20180907180047p:plain

うるさい客ですね...とまあこんな感じでメソッドは作れます。

引数も当然増やせます。その際、メソッドを呼び出して引数に代入する際には、メソッドの定義順に代入しなければならないことに注意です。

ちなみにこの例はJavaでいうところのpublic voidに当たるメソッドです。では戻り値を返すメソッドはないのでしょうか。...あります!returnを使います。いつもと全く同じです。

f:id:SyuchiNikuRing:20180907181827p:plain

4割引きのセールタイムのメソッドです。実行します。

f:id:SyuchiNikuRing:20180907181908p:plain

いい感じですね。今回はメソッド内で0.6、つまり小数を乗じているので、結果も小数型で出力されています。なので、600円が600.0円という為替の表記のようになっています。

戻り値には真偽値も取れます。その場合にはメソッド名の直後に?をつけます。

f:id:SyuchiNikuRing:20180907183144p:plain

某電機量販店と被っていますが一切関係ありません。地域最安値でなければ割引に応じてくれ、地域最安値であれば割引を拒まれるメソッドです。実行します。

f:id:SyuchiNikuRing:20180907183420p:plain

キレられなくてよかった...price = 12000, area_lowest = 9000なので割引に応じてくれました。メソッドの中でifを使えばさらに細かい処理もできるようになりますね。

 

最後にキーワード引数に関してです。引数が増えると、呼び出す際にどの引数を書いているのか、順番を気にしないといけないので確認するのが面倒です。そこでキーワード引数です。前回のシンボルの件と同じです。

f:id:SyuchiNikuRing:20180907184653p:plain

実行します。

f:id:SyuchiNikuRing:20180907184714p:plain

...ブルジョワですね。ホストクラブメソッドです。引数を代入するところで「:」を使っています。このように書くと、どの引数に何を代入するのかを明確化できていいですよね。

今回はここまで。