Ruby入門トップページ


目次

  1. 環境設定
  2. コマンドプロンプトの基礎知識
  3. Rubyを動かそう
  4. いくつかのオブジェクト
  5. クラスと変数
  6. メソッド
  7. クラスとモジュール

Ruby入門

メソッド

一連の手続きをひとまとめのメソッドとして定義しておけば,プログラムから呼び出して利用することができる.例えば,Hi! と表示するだけのメソッドを定義して呼び出してみる.

method1.rb
# メソッドの定義
def sayHi
  puts "Hi!"
end

# メソッドを呼び出す
sayHi()
sayHi()
Hi!
Hi!

なお,メソッドは呼び出すよりも前に定義しておかなければならない.よって,次のように記述した場合はエラーが表示される.

method2.rb
# まだ定義していないメソッドを呼び出す(エラーになる)
sayHi()

# ここでメソッドを定義する
def sayHi
  puts "Hi!"
end
method2.rb:2:in `<main>': undefined method `sayHi' for main:Object (NoMethodError)

メソッドには引数ひきすうを指定することができる.

method3.rb
# メソッドを定義する,ただし name は引数
def sayHello(name)
  puts "Hello, #{name}!"
end

# 引数を指定してメソッドを呼び出す
sayHello("Rinsaka")
sayHello("Koichiro")
Hello, Rinsaka!
Hello, Koichiro!

メソッドに渡す引数が省略された場合のためにデフォルト引数を指定することもできる.

method4.rb
# デフォルト引数を指定してメソッドを定義する
def sayHello(name = "Sato")
  puts "Hello, #{name}!"
  end

  # 引数を指定してメソッドを呼び出す
  sayHello("Rinsaka")
  sayHello("Koichiro")
  # 引数を省略すればデフォルト引数が使用される
  sayHello()
Hello, Rinsaka!
Hello, Koichiro!
Hello, Sato!

値を返すメソッドも定義できる.値を返すには return を使う.

method5.rb
# 値を返すメソッドを定義する(引数に縦と横の長さを指定すれば長方形の面積を計算して返す)
def menseki(tate, yoko)
  s = tate * yoko  # s は menseki メソッド内だけで有効なローカル変数
  return s
end

# メソッドを呼び出す
s1 = menseki(2, 5)
s2 = menseki(3, 8)
p s1
p s2
10
24

またプログラムが大きくなる場合(行数が多くなる場合),メソッドは別のファイル(ライブラリ)に定義されることが少なくない.自分で作成したライブラリはプログラムと同じフォルダに置き,require_relative メソッドで読み込めば良い.例えば,「menseki.rb」を「method6.rb」と同じフォルダに作成し,ruby method6.rb と入力して実行する.

menseki.rb
# 値を返すメソッドを定義する
def menseki(tate, yoko)
  s = tate * yoko
  return s
end
method6.rb
# menseki.rb ライブラリ(外部ファイル)を読み込む
require_relative "menseki" # .rb は省略して良い

# メソッドを呼び出す
s1 = menseki(2, 5)
s2 = menseki(3, 8)
p s1
p s2
C:\Users\lecture\Documents\ruby>ruby method6.rb ⏎
10
24

C:\Users\lecture\Documents\ruby>

さらに,Rubyの標準として準備されているライブラリは require メソッドで読み込むことができる.

目次に戻る