#3 Rubyで学ぶ演算子の基本

Rubyの演算子は、書きやすさを重視するRubyらしく、直感的でシンプルな設計になっています。この記事では、Rubyの基本的な演算子と、注意が必要な組み合わせについて解説します。

算術演算子・比較演算子

Rubyでは、次のような演算子を使います。

  • + - * / % 算術演算子
  • == != > < 比較演算子
  • && || ! 論理演算子(単語のand・or・notも使用可)

Rubyの==は、文字列同士でも中身を正しく比較してくれます。

整数の割り算は切り捨てになる

Rubyでも、整数型同士の割り算は小数点以下が切り捨てられます。小数の結果が欲しい場合は、どちらかの値を小数(Float)にする必要があります。

puts 10.0 / 3 # 3.333...

べき乗を表す演算子

Rubyには、Pythonと同じように**というべき乗を計算する演算子があります。

puts 2 ** 10 # 1024

安全ナビゲーション演算子&.

値がnilかもしれない変数を安全に扱うため、&.という演算子も用意されています。

user = nil
puts user&.name # エラーにならずnilを返す

userがnilでなければ.nameを呼び出し、nilならそのままnilを返してくれるため、事前のnilチェックを省略できます。

範囲演算子..と...

Rubyには、数値や文字の範囲を表す..・...という演算子もあります。

(1..5).each { |n| print n } # 12345(5を含む)
(1...5).each { |n| print n } # 1234(5を含まない)

ドットの数で「最後の値を含むかどうか」が変わる点に注意しましょう。

Rubyならではの注意点

Rubyには&&・||と、and・orという、見た目は違うけれど似た働きをする2種類の書き方が存在します。実はこの2つは優先順位(どちらが先に計算されるか)が微妙に異なるため、意図せず組み合わせて使うと予想外の挙動になることがあります。基本的には&&・||を使うようにすると、混乱を避けられます。

スプレッド演算子で配列を展開する

配列を展開して別の配列に合成したり、関数に渡したりしたい場合は*(スプレッド演算子)が使えます。

fruits = ["りんご", "みかん"]
more_fruits = [*fruits, "ぶどう"] # ["りんご", "みかん", "ぶどう"]

まとめ

Rubyの演算子は直感的に使えるものがほとんどですが、&&とandのような紛らわしい組み合わせには注意が必要です。&.による安全なnil対応も活用しつつ、迷ったときは記号のほうを使う、と覚えておくとよいでしょう。


本ページはプロモーションを含みます。

参考書籍(PR)

Rubyをもっと学びたい方には「プロを目指す人のためのRuby入門[改訂2版]」がおすすめです。


PR

コードを書かずに自動化したい方へ

「学んだけど自分の作業に組み込む時間がない」という方向けに、ダブルクリックで動く Windows専用の自動化ツールをオーダーメイドで作成しています。気になる方は こちらをご覧ください。

コメント

このブログの人気の投稿

#25 Rustで学ぶAI API(ChatGPT等)の呼び出し方の基本

#8 C++で学ぶ文字列操作の基本

#16 TypeScriptで学ぶ辞書型(マップ)の基本