関数の書き方 (Ruby)
[履歴] [最終更新] (2013/07/16 05:45:22)
最近の投稿
注目の記事

一般の関数

sample.rb

def divide(a,b)
  raise "divided by zero!" if b==0  # 例外を投げます
  a.to_f/b.to_f    # to_fで浮動小数点, to_iで整数, to_sで文字列 に変換できます。C/C++のcastのイメージ。
end                # (Perlと同じで変数には型がなく、代入されたオブジェクトはC/C++のように型が固定)

puts divide(1,2)

出力例

$ ruby sample.rb 
0.5

既定値の設定

sample.rb

def func(num = nil)
  num ||= 256 # numが偽の場合に256で更新
end

p func(128)
p func()

出力例

$ ruby sample.rb 
128
256

ブロックを受け取る関数の定義

sample.rb

def func1
  yield 0
  yield 1
  yield 2
end
def func2
  0.upto(2).each{|i| yield i,i**2}
end

func1 do |x|
  p x
end
func2 do |x,y|
  p [x,y]
end

出力例

$ ruby sample.rb 
0
1
2
[0, 0]
[1, 1]
[2, 4]

特異メソッド

クラスではなくオブジェクトに対してメソッドを定義できます。

sample.rb

str = "This is a string"

def str.myputs(str2)
  puts "#{self} #{str2}"
end

str.myputs("of Ruby.")

出力例

$ ruby sample.rb 
This is a string of Ruby.
関連ページ