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.