{category}

Ruby - 演算子

|=

パイプイコール(言語の基礎

意味 ビット単位OR代入演算子


|=とは?

|=はビット単位OR代入演算子です。左辺の変数と右辺の値でビット単位のOR演算を行い、その結果を左辺の変数に代入します。これは、a |= bがa = a | bと同じ意味を持つ省略形です。

|=の具体的な使い方

ビット単位OR代入を使ったフラグの設定

# 権限を表すフラグを定義
READ_PERMISSION  = 0b001
WRITE_PERMISSION = 0b010
EXEC_PERMISSION  = 0b100

# ユーザーの初期権限を設定
user_permissions = 0b000

# 読み取りと実行の権限を付与
user_permissions |= READ_PERMISSION
user_permissions |= EXEC_PERMISSION

puts "ユーザーの権限: #{user_permissions.to_s(2).rjust(3, '0')}"

# 権限のチェック
if (user_permissions & WRITE_PERMISSION).nonzero?
  puts "書き込み権限があります"
else
  puts "書き込み権限がありません"
end

👇出力結果

ユーザーの権限: 101
書き込み権限がありません

この例では、|=演算子を使用してビットフラグで表現された権限を設定しています。最初にユーザーには権限がない状態(000)から始め、読み取り権限(001)と実行権限(100)を付与しています。その後、特定の権限(この場合は書き込み権限)があるかどうかをチェックする方法も示しています。

|=に関するよくある質問

Q. |=演算子の動作原理は?
A. |=演算子は、左辺の変数と右辺の値でビット単位のOR演算を行い、その結果を左辺の変数に代入します。各ビット位置で、どちらかのビットが1の場合に1になります。
Q. |=と|の違いは何ですか?
A. |=は代入を伴う演算子で、結果を直接変数に代入します。一方、|は単なるビット単位OR演算を行いますが、結果を変数に代入するには別途代入操作が必要です。
Q. |=の一般的な使用例は?
A. |=は主にビットマスクの操作やフラグの設定に使用されます。例えば、特定のビットをオンにする際に使用できます。

|=が学べる書籍の紹介

「プログラミング単語帳」を使って、プログラミングの単語を英単語のように学習してみませんか?
プログラミング単語帳には、Rubyの|=やcover?、floor、end、などのような実務でよく使われる単語が数百以上収録されています。
この書籍には、プログラミングの単語の意味や読み方、単語の使い方がわかる例文などが掲載されており、いつでもどこでもプログラミングの学習ができます。

よく使われる単語にだけ絞って学習することができるので、効率的にプログラミングが学習できます。

1日5分の暗記でプログラミンが身に付く!プログラミング単語帳 公式ストアで発売中!

HTML編、CSS編、JavaScript編、PHP編、Ruby編、その他単語編の6シリーズ分が公式ストアにて販売中です。気になった方はぜひ購入してみてください。


Rubyを学べる「プログラミング単語帳」アプリ

プログラミング単語帳がアプリになりました!Rubyはもちろん、10種類のプログラミング言語の中から、よく使われる単語をスマホで学習できます。

収録単語は2,000単語以上!
現在は、HTML、CSS、JavaScirpt、PHP、Laravel、Ruby、Python、MySQL、Linux、など10カテゴリーの単語帳が1つのアプリに収録されています。

いつでも、どこでも、隙間時間を有効活用して、プログラミングを効率的に学べるので、ぜひダウンロードしてみてください。

2024年7月アップデート情報:「Laravel」カテゴリーが追加されましました!

2024年8月アップデート情報:「MySQL」「Linux」カテゴリーが追加されましました!


関連するそのほかの単語

cover?

値が範囲内かを判定

種類: Range操作

floor

数値を切り捨てる

種類: 数値操作

end

ブロックやメソッドの終了

種類: メソッド定義と呼び出し

String

文字列を表すデータ型

種類: 基本データ型

module

メソッドや定数をまとめる

種類: モジュール