Ruby 資料一覧

クラス

2007/8/21更新

対応バージョン: 1.8

クラス/メソッドの定義方法

Rubyのクラス/メソッドは以下のように簡単に記述できる。

例)

まずクラス/メソッド定義を「myclass.rb」として作成する。

class Dog		# 犬に関するクラス定義
  def type		# 種別メソッド
    return "犬"
  end

  def voice		# 鳴き声メソッド
    return "わんわん"
  end
end

class Cat		# 犬に関するクラス定義
  def type		# 種別メソッド
    return "猫"
  end

  def voice		# 鳴き声メソッド
    return "にゃー"
  end
end

これを使って以下のような処理が書ける。

require "myclass"

pochi = Dog.new
mike  = Cat.new

puts "#{pochi.type}は「#{pochi.voice}」と鳴く"
puts "#{mike.type}は「#{mike.voice}」と鳴く"

=> 犬は「わんわん」と鳴く
=> 猫は「にゃー」と鳴く

メソッドから複数の戻り値を返す

通常メソッドの戻り値は一つしか指定できないが、配列を使うことによって複数の戻り値を返すことができる。

return 1, 2, 3

これは以下の書き方と同じ意味になる。

data = [1, 2, 3]
return data

メソッド呼び出し側ではこの戻り値をリストや多重代入により取り出すことができる。

def func
  data = [1,2,3]
  return data
end

# リスト
ret = func

p ret
=> [1, 2, 3]

# 多重代入
ret1, ret2, ret3 = func

p ret1,ret2,ret3
=> 1
=> 2
=> 3

メソッドの引数のデフォルト値を設定する

メソッドの引数に対して、何も指定されなかった場合のデフォルト値を指定することができる。

def func(data = "none")
  return data
end

p func("foo")
=> "foo"

p func()
=> "none"