[解決済み] Rubyで||= (or-equals)はどういう意味ですか?
2022-03-26 07:16:47
質問
次のコードはRubyではどのような意味ですか?
||=
この構文には何か意味や理由があるのでしょうか?
どのように解決するのですか?
この問題は、RubyメーリングリストやRubyブログで頻繁に議論され、今ではRubyメーリングリストに 他のすべてのスレッド を、Rubyメーリングリストの中で議論しています。
ここに1つあります。 ||= (OR Equal)のスレッドとページの決定版リスト
もし、あなたが 本当に の11.4.2.3 "Abbreviated assignments"を見てみてください。 Ruby言語仕様書(案 .
第一の近似値として
a ||= b
は、以下と同等です。
a || a = b
と ではなく と同じです。
a = a || b
しかし、それは第一近似値に過ぎず、特に
a
は未定義です。また、単純な変数の代入なのか、メソッドの代入なのか、インデックスの代入なのかによってもセマンティクスが違ってきます。
a ||= b
a.c ||= b
a[c] ||= b
はすべて異なる扱いを受けます。
関連
-
[解決済み] 構文エラー、予期しない ',', 期待する ')' 。
-
[解決済み] とは何ですか! (not not)演算子とは何ですか?
-
[解決済み] C言語では「?」演算子は何をするのですか?
-
[解決済み] w(array)とはどういう意味ですか?
-
[解決済み] Rubyのmap(&:name)ってどういう意味?
-
[解決済み】C/C++の"-->"演算子とは何ですか?
-
[解決済み】JavaScriptの比較では、どちらの等号演算子(== vs ===)を使うべきですか?
-
[解決済み】Pythonに三項条件演算子はありますか?
-
[解決済み] リファレンス - このシンボルはPHPで何を意味するのですか?
-
[解決済み】なぜJavaの+=, -=, *=, /=複合代入演算子はキャスティングを必要としないのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】そのようなファイルやディレクトリはありません @ rb_sysopen ruby
-
[解決済み】macOSでrbenvをアンインストールする方法とは?
-
[解決済み] -bashです。/Users/myname/.bash_profile: パーミッションが拒否されました
-
[解決済み] Ruby 'require' エラー: そのようなファイルをロードできない
-
[解決済み] Ruby プログラムに一定時間待つように指示する
-
[解決済み] ルビー最大整数
-
[解決済み] Rubyの配列から文字列への変換
-
[解決済み] ルビーです。そのようなファイルやディレクトリはありません @ rb_sysopen - testfile (Errno::ENOENT)
-
[解決済み] 配列をアルファベット順に並べるには?
-
[解決済み] Gem::Specification.reset中に未解決のスペックがある。