Ruby初心者がマスターすべき5つの代入演算子とその応用法

Ruby初心者が学ぶべき代入演算子の使い方を解説した記事のサムネイルRuby
この記事は約6分で読めます。

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

基本的な知識があればサンプルコードを活用して機能追加、目的を達成できるように作ってあります。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を凌駕する現役のプログラマチームによって監修されています。

サイト内のコードを共有する場合は、参照元として引用して下さいますと幸いです

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

Rubyを学び始めて一つ目の壁と言えば、代入演算子の理解です。

この記事を読むことで、Rubyの代入演算子について理解が深まり、さまざまなケースで代入演算子を活用することができるようになります。

●Rubyの代入演算子とは

代入演算子とは、特定の値を変数に「代入」するための演算子です。Rubyでは、「=」が基本的な代入演算子として使われます。

例えば、下記のコードでは、変数aに1という値を代入しています。

a = 1 # 変数aに1を代入

このコードを実行すると、変数aには1という値が保持されます。

つまり、変数aを参照すると1が出力されます。

●Rubyの基本的な代入演算子

Rubyの代入演算子は「=」が基本ですが、他にもいくつか種類があります。

○基本的な代入演算子のサンプルコード

  1. 「+=」は加算して代入します。下記のサンプルコードでは、変数aに2を加算し、結果を変数aに代入します。
a = 1
a += 2 # a = a + 2と同義、つまりaに3が代入される

このコードを実行すると、変数aは最終的に3という値になります。

  1. 「-=」は減算して代入します。下記のサンプルコードでは、変数aから2を減算し、結果を変数aに代入します。
a = 5
a -= 2 # a = a - 2と同義、つまりaに3が代入される

このコードを実行すると、変数aは最終的に3という値になります。

  1. 「*=」は乗算して代入します。下記のサンプルコードでは、変数aに2を乗算し、結果を変数aに代入します。
a = 5
a *= 2 # a = a * 2と同義、つまりaに10が代入される

このコードを実行すると、変数aは最終的に10という値になります。

  1. 「/=」は除算して代入します。下記のサンプルコードでは、変数aを2で除算し、結果を変数aに代入します。
a = 10
a /= 2 # a = a / 2と同義、つまりaに5が代入される

このコードを実行すると、変数aは最終的に5という値になります。

  1. 「%=」は剰余を求めて代入します。下記のサンプルコードでは、変数aを2で割った余りを計算し、結果を変数aに代入します。
a = 7
a %= 2 # a = a % 2と同義、つまりaに1が代入される

このコードを実行すると、変数aは最終的に1という値になります。

これは7を2で割った余りが1だからです。

●Rubyの複合代入演算子

Rubyの複合代入演算子は、特定の演算を行った結果を同じ変数に代入するための演算子です。

基本的な代入演算子と同じように、複合代入演算子もプログラミングにおいて頻繁に使われます。

○複合代入演算子のサンプルコード

Rubyには「**=」という複合代入演算子があり、これは「累乗して代入する」という意味を持ちます。

下記のサンプルコードでは、変数aを2で累乗し、その結果を変数aに代入します。

a = 3
a **= 2 # a = a ** 2と同義、つまりaに9が代入される

このコードを実行すると、変数aは最終的に9という値になります。

これは3の2乗が9だからです。

●Rubyの代入演算子の応用例

代入演算子はそのまま使うだけではなく、応用することでさまざまなプログラムを書くことができます。

○応用例のサンプルコード

例えば、配列の各要素に一定の数を加えるような場合、次のようなコードを書くことができます。

numbers = [1, 2, 3, 4, 5]
numbers.map! {|n| n += 10} # 配列の各要素に10を加える

このコードを実行すると、numbersは[11, 12, 13, 14, 15]という配列になります。

●Rubyの代入演算子の注意点と対処法

Rubyの代入演算子を使う際には、注意しなければならない点があります。

特に初心者にとっては、混乱を招く可能性のある挙動について説明します。

1つ目の注意点は、「=」は代入を意味し、比較を意味しないという点です。

Rubyでは「==」が比較演算子として使われます。「=」と「==」の違いを理解し、適切に使い分けることが大切です。

2つ目の注意点は、代入演算子を使った場合、元の変数の値が変更されるという点です。

これは「代入演算子は変数に新たな値を代入する」ため、元の値が保持されないからです。

元の値を保持したい場合は、

別の変数に値をコピーしてから代入演算を行う必要があります。

次に、その注意点に対する対処法を示すサンプルコードを表します。

このコードでは、元の値を保持しつつ、新たな値を代入しています。

original = 5
copy = original
copy += 5 # copyに5を加える

このコードを実行すると、originalの値は変化せず、copyの値は10になります。

このように、元の値を保持したい場合は、別の変数に値をコピーしてから代入演算を行うことが重要です。

●Rubyの代入演算子のカスタマイズ方法

Rubyの代入演算子は、基本的な使い方だけではなく、カスタマイズすることで更に強力なツールとなります。

その中でも、「代入と同時に条件判断を行う」というテクニックは、コードの読みやすさと効率性を向上させることができます。

○カスタマイズ方法のサンプルコード

次に紹介するサンプルコードは、「代入と同時に条件判断を行う」カスタマイズ方法を示しています。

下記のコードでは、変数aが10未満の場合にだけ、値を10に更新するという操作を行っています。

a = 5
a = 10 if a < 10 # aが10未満のときだけ、aを10に更新する

このコードでは、最初に変数aに5が代入されています。

その後、aが10未満のときだけ、aに10が代入されます。よって、このコードを実行した結果、変数aの値は10になります。

このようなカスタマイズは、条件に応じて変数の値を更新したいときに非常に便利です。

また、一行で完結するため、コードの読みやすさも向上します。

まとめ

この記事では、Rubyの代入演算子、特に複合代入演算子に焦点を当て、その基本的な使い方から応用例、注意点と対処法、そしてカスタマイズ方法までを詳しく解説しました。

代入演算子はRubyプログラミングの基本中の基本であり、その理解と適切な利用は、効率的で読みやすいコードを書くために不可欠です。

初心者の方々は、今回解説した内容をぜひ自分のコードに取り入れてみてください。

それによって、Rubyプログラミングの理解が一段と深まることでしょう。

これからもRubyプログラミングの学習を頑張りましょう!