irb (Ruby Console)
irb> puts "Hello, Ruby!"|
完全無料・オープンソース

Ruby 構文・メソッド
完全リファレンス

Rubyの全ての構文とメソッドを、わかりやすい例とともに解説。 初心者から上級者まで、必要な情報がすぐに見つかります。

494メソッド解説
37+サンプル
91構文解説

人気のメソッド

push

配列の最後に値を追加したいときに使います。元の配列が更新されます。

arr = [1, 2]; arr.push(3) #=> [1, 2, 3]
Ruby Ruby 1.8

append

pushと同じで、配列の最後に値を追加します。

nums = [10]; nums.append(20) #=> [10, 20]
Ruby Ruby 2.5

<<

pushと同じで、末尾に値を足したいときに使います。記述が短くできます。

list = []; list << "a" << "b" #=> ["a", "b"]
Ruby Ruby 1.8

構文 条件分岐・くり返し

if や while など、条件によって処理を変えたり、同じ処理をくり返すための書き方です。

if文

条件によって処理を分けたいときに使います。

score = 75
if score >= 60
  puts "合格"
else
  puts "不合格"
end
Ruby 1.8.7

unless文

条件が当てはまらないときだけ処理したいときに使います。

user = User.find(id)
unless user
  puts "ユーザが存在しません"
end
Ruby 1.8.7

case文

複数の条件をまとめて分岐したいときに使います。

case color
when "red"
  puts "赤です"
when "blue", "green"
  puts "寒色系です"
else
  puts "その他の色です"
end
Ruby 1.8.7

while文

条件が成り立つ間、繰り返し処理したいときに使います。

i = 0
while i < 3
  puts i
  i += 1
end
Ruby 1.8.7

until文

条件が成り立たなくなるまで繰り返したいときに使います。

password = ""
until password == "ruby"
  password = gets.chomp
end
Ruby 1.8.7

for文

配列や範囲の全ての要素に対して繰り返したいときに使います。

sum = 0
for n in [1, 2, 3]
  sum += n
end
puts sum   #=> 6
Ruby 1.8.7

break

ループを途中で抜けたいときに使います。

numbers.each do |num|
  break if num < 0
  puts num
end
Ruby 1.8.7

next

ループ内で次の繰り返しに進みたいときに使います。

(1..5).each do |i|
  next if i % 2 == 0
  puts i   # 奇数のみ出力
end
Ruby 1.8.7

redo

同じ繰り返しをやり直したいときに使います。

i = 0
while i < 3
  puts i
  i += 1
  redo if i == 3 && need_repeat
end
Ruby 1.8.7

retry

例外処理で、もう一度最初からやり直したいときに使います。

begin
  attempt_network_request
rescue TimeoutError
  retry   # タイムアウト時に再試行
end
Ruby 1.9.0

case/in文(パターンマッチ)

値の中身や形によって分岐したいときに使います。配列やハッシュの中身を直接判定できます。

case data
in {name: n, age: 20..}
  puts "20歳以上の#{n}さん"
in [x, y, z]
  puts "3要素の配列を受け取りました"
else
  puts "マッチしませんでした"
end
Ruby 3.0.0

右代入演算子(=>)

配列や値を「[a, b] => [x, y]」のように右側の変数に分解して代入したいときに使います。

[1, 2, 3] => [first, *rest]
p first    #=> 1
p rest     #=> [2, 3]
Ruby 3.0.0

パターンマッチ式(in)

値が特定の形かどうかをif文などで簡単に判定したいときに使います。

if [x, y] in coords
  puts "X=#{x}, Y=#{y}"
end
Ruby 3.0.0

三項演算子(?:)

簡単な条件分岐を1行で書きたいときに使います。

result = score >= 60 ? "合格" : "不合格"
Ruby 1.8.7

フリップフロップ演算子

たとえば「BEGINからENDまで」のように、特定の範囲に入ったら出るまでtrueにしたいときに使います。テキスト処理などで便利です。

DATA.each_line do |line|
  puts line if line =~ /BEGIN/ .. line =~ /END/
end
__END__
BEGIN
foo
END
Ruby 2.7.0