[解決済み】&とは?(アンパサンドドット)はRubyではどういう意味ですか?
2022-04-10 17:26:22
質問
このようなrubyのコードに出会いました。このコードは
&.
の意味を教えてください。
@object&.method
解決方法は?
これは、Safe Navigation Operatorと呼ばれるものです。Ruby 2.3.0 で導入されたこの演算子を使うと、オブジェクトのメソッドを安心して呼び出すことができ、オブジェクトが
nil
(この場合
undefined method for nil:NilClass
エラー) と同様に
try
メソッドで、Railsの
.
ということで、次のように書くことができます。
@person&.spouse&.name
ではなく
@person.spouse.name if @person && @person.spouse
から ドキュメント :
my_object.my_method
これは
my_method
メッセージからmy_object
. どんな オブジェクトは受信者になることができますが、メソッドの可視性によっては メッセージを送信するとNoMethodError
.を使用することができます。
&.
で受信者を指定し、次にmy_method
は呼び出されません。 となり、その結果はnil
のとき、レシーバがnil
. この場合 の引数はmy_method
は評価されない。
関連
-
[解決済み] Rubyで=~と/Θはどういう意味ですか?
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] とは何ですか! (not not)演算子とは何ですか?
-
[解決済み] パラメータに**(ダブルスター/アスタリスク)、*(スター/アスタリスク)がありますが、これはどういう意味ですか?
-
[解決済み] C言語では「?」演算子は何をするのですか?
-
[解決済み] C言語における「static」の意味とは?
-
[解決済み】C/C++の"-->"演算子とは何ですか?
-
[解決済み】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をアンインストールする方法とは?
-
[解決済み] Rubyのメソッド'to_sym'は何をするのですか?
-
[解決済み] Gemfile が見つかりません。
-
[解決済み] 配列をアルファベット順に並べるには?
-
[解決済み] Rubyのcontinueに相当します。
-
[解決済み] Rubyで=~と/Θはどういう意味ですか?
-
[解決済み] Rubyのダブルコロン `::` とは何ですか?
-
[解決済み] Ruby で PDF 文書を解析する
-
[解決済み] プロキシ(ISA-NTLM)の後ろからRuby Gemsをアップデートする方法