メソッドを定義してみる。
メソッドを定義する。やっとここまで来たか。長かった。
def hoge(a, b) return a + b end p hoge(1, 2)
結果。
3
returnは無くてもOK、最後に評価した式が自動的に返される。引き数のカッコも無くてOK。
無くてもいいなら無いほうを選ぶ怠け者の私ですが、引き数のカッコは悩む。どっちが主流なのか。怠け者かつ太いものには巻かれる私でございます。
def hoge a, b a + b end p hoge(1, 2)
メソッドは使うよりも前に定義しなくてはならない。
p hoge(1, 2) def hoge a, b a + b end
激しく叱られます。そんなに言わなくても…
./hoge.rb:3: undefined method `hoge' for main:Object (NoMethodError)
メソッド内部にメソッドを作ることも可能。
def hoge a, b def huga a, b a * b end huga(a, b) + a + b end p hoge(1, 2)
結果。
5
メソッドの引き数にデフォルト値を指定することだって可能さ。
def hoge a, b = 2 a * b end p hoge(2) p hoge(2, 3)
結果。
4 6
可変長の引き数を受け取ることだってできちゃう。
def hoge a, *b c = a b.each do |i| c+=i end c end p hoge(1, 2, 3, 4, 5)
結果。
15
メソッド定義一つをとってもいろいろあって楽しいなー
- 作者: 広瀬雄二
- 出版社/メーカー: 技術評論社
- 発売日: 2006/01/13
- メディア: 単行本(ソフトカバー)
- クリック: 9回
- この商品を含むブログ (41件) を見る