💎
【Ruby 2日目】基本文法 - 演算子
はじめに
Rubyで使用できる各種演算子について解説します。Ruby 3.4では算術演算子、比較演算子、論理演算子、代入演算子など多様な演算子が用意されています。
基本概念
演算子には以下の種類があります:
- 算術演算子: +, -, *, /, %, **
- 比較演算子: ==, !=, <, >, <=, >=, <=>, ===
- 論理演算子: &&, ||, !, and, or, not
- ビット演算子: &, |, ^, ~, <<, >>
- 代入演算子: =, +=, -=, *=, /=, %=, **=
- 範囲演算子: .., ...
- その他: ?:(三項演算子)、&.(ぼっち演算子)
使い方
# 算術演算子
puts 10 + 5 #=> 15
puts 10 - 5 #=> 5
puts 10 * 5 #=> 50
puts 10 / 5 #=> 2
puts 10 % 3 #=> 1
puts 2 ** 3 #=> 8
# 比較演算子
puts 5 == 5 #=> true
puts 5 != 3 #=> true
puts 5 <=> 3 #=> 1(左が大きい)
# 論理演算子
puts true && false #=> false
puts true || false #=> true
puts !true #=> false
# 三項演算子
age = 20
status = age >= 20 ? "adult" : "minor"
puts status #=> "adult"
よくあるユースケース
安全なナビゲーション(ぼっち演算子)
# nilに対して安全にメソッド呼び出し
user = nil
# 通常の場合(エラーになる)
# puts user.name #=> NoMethodError
# ぼっち演算子を使用
puts user&.name #=> nil(エラーにならない)
# 実用例
class User
attr_accessor :address
end
user = User.new
puts user&.address&.city #=> nil(チェーン可能)
# 配列の要素アクセス
users = [User.new, nil, User.new]
users.each do |u|
puts u&.address&.city || "住所なし"
end
複合代入演算子の活用
# カウンター
count = 0
count += 1 # count = count + 1と同じ
puts count #=> 1
# 文字列連結
message = "Hello"
message += " World"
puts message #=> "Hello World"
# 配列操作
numbers = [1, 2, 3]
numbers += [4, 5]
p numbers #=> [1, 2, 3, 4, 5]
# べき乗
value = 2
value **= 3
puts value #=> 8
注意点とベストプラクティス
- &&とandは優先順位が異なる(&&の方が高い)
- ぼっち演算子(&.)はRuby 2.3以降で使用可能
- 宇宙船演算子(<=>)はsortメソッドで重宝する
- 整数除算は切り捨てられるため、小数が必要な場合はFloatに変換
- ||=は変数がnilまたはfalseの場合のみ代入する
まとめ
演算子について学びました。実践的なコード例を通じて、Ruby 3.4の機能を活用できるようになりましょう。
Discussion