Rubyの続きです。前回は文字列や計算の出力を行いました。今回はメソッドの定義と実行をやってみたいとおもいます。メソッドはdefで始まりendで終わる書き方のようでした。それではいきましょう!
【目次】
Ruby/Ruby on Railsを習得するためにやったこと まとめ qiita.com
メソッド(引数なし)
今回も「20分ではじめるRuby」を参考に進める。今回のテーマはメソッド(関数のことか)。
※参考:20分ではじめるRuby
メソッドはdef
から始まりend
で終わる書き方のようだ。
※参考:クラス/メソッドの定義 (Ruby 3.3 リファレンスマニュアル)
hi
メソッドの定義をしてみる。メソッドの名の後に引数はない。処理内容はputs
による文字の出力。
# メソッドの定義(def〜end) # メソッド(引数なし) def hi puts "Hello, Ruby!" end
puts
については前回記事を参照。
※参考:【Ruby】文字列や計算の出力(putsメソッド、Mathモジュール) - クモのようにコツコツと
メソッドの実行は引数を入れるカッコはなくても実行できるようだ。カッコありも実行してみる。
#メソッドの実行
hi
hi()
Rubyを起動した結果
% ruby ri20min_4.rb Hello, Ruby! Hello, Ruby!
カッコはあってもなくても結果は変わらなかった。
メソッド(引数あり)
次に引数ありのメソッドを定義してみる。
# メソッド(引数あり) def hi(name) puts "Hello, #{name}!!" end
引数name
を#{ }
の中に入れる。「式展開」といって、この中にRubyの式を書けるようだ。
※参考:リテラル (Ruby 3.3 リファレンスマニュアル)
メソッドを実行
hi("John") hi("Paul") hi("George") hi "Ringo" hi
引数のカッコはなくても実行できるようだ。最後に引数なしでメソッドを実行してみる。
Rubyを起動した結果
% ruby ri20min_5.rb Hello, John!! Hello, Paul!! Hello, George!! Hello, Ringo!! ri20min_5.rb:4:in `hi': wrong number of arguments (given 0, expected 1) (ArgumentError) from ri20min_5.rb:12:in `<main>'
カッコなしのRingo
も表示された!引数なしの実行はエラーになった、、
メソッド(引数 & 初期値あり)
引数には初期値を設定できるようだ。やってみる。
# メソッド(引数 & 初期値あり) def hi(name = "ruby") puts "Hello, #{name.capitalize}!!!" #1文字目を大文字にする end
引数の初期値はruby
に設定した。
引数に繋げているcapitalize
は、ローマ字の1文字目を大文字にする組み込みライブラリのようだ。
※参考:String#capitalize (Ruby 3.3 リファレンスマニュアル)
メソッドの実行
hi "john" hi "paul" hi "george" hi "ringo" hi
先ほどと同様に最後に引数無しでメソッドを実行してみる。
Rubyを起動した結果
% ruby ri20min_6.rb Hello, John!!! Hello, Paul!!! Hello, George!!! Hello, Ringo!!! Hello, Ruby!!!
今度は引数なしでもエラーにならない!初期値のruby
が表示されている。また、capitalize
によってすべての引数の一文字目が大文字(Ruby
など)に変換された!
最後に
ということで、今回はRubyのメソッドを実行してみました。次はクラス、オブジェクトの作成と実行をしてみたく思います。クラスによってだんだんオブジェクト指向っぽい概念に入っていけそうで楽しみです(JSにもクラス記法は経験しましたが正直あまり理解できてなかった)。それではまた!
Ruby/Ruby on Railsを習得するためにやったこと まとめ qiita.com