問題タブ [safe-navigation-operator]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
22 に答える
145641 参照

javascript - javascriptにnull合体(Elvis)演算子または安全なナビゲーション演算子はありますか?

例で説明します:

エルビス オペレーター (?: )

「エルビス演算子」は、Java の三項演算子を短縮したものです。これが便利な例の 1 つは、式が false または null に解決された場合に「適切なデフォルト」値を返す場合です。簡単な例は次のようになります。

安全航行事業者 (?.)

安全なナビゲーション演算子は、NullPointerException を回避するために使用されます。通常、オブジェクトへの参照がある場合、オブジェクトのメソッドまたはプロパティにアクセスする前に、それが null でないことを確認する必要がある場合があります。これを回避するために、セーフ ナビゲーション オペレータは次のように、例外をスローする代わりに単純に null を返します。

0 投票する
1 に答える
4523 参照

ruby - Ruby が安全なナビゲーション演算子に独自の構文を使用するのはなぜですか?

Ruby 2.3.0 では、前のステートメントの値がnilでない場合にのみメソッドを呼び出す新しい演算子を導入することで、チェーンされたメソッド呼び出しの nil 処理を容易にする安全なナビゲーション構文が導入されています。これは、C#、Groovy、Swift などに既に存在する機能です。たとえばGroovyでは、構文は次のとおりです。

これは基本的に、foonullでない限り、結果の値がfoo.barの値であることを意味します。その場合、戻り値もnullであるため、例外はスローされません。また、C# (ヌル条件演算子と呼ばれる) とSwift (オプショナル チェーン式と呼ばれる) もこの表記法を使用します。

したがって、構文は他の言語では非常に標準的なようです。さて、なぜRubyの構文は

代わりは?

0 投票する
2 に答える
8775 参照

ruby - nil の安全なナビゲーション演算子 (&.)

Ruby 2.3 で Safe ナビゲーション operator( &.) (別名、孤独な演算子) が導入されたため、nilオブジェクトに対する動作が奇妙に思えます。

このように動作するように設計されていますか?または、孤独なオペレーターを追加するときにすり抜けたエッジケースはありますか?

0 投票する
2 に答える
543 参照

ruby - 安全なナビゲーション演算子(&.または「アンパサンドドット」)に相当するRuby2.3より前のものは何ですか?

Ruby の新しい安全なナビゲーション演算子 () に関して、私が見つけることができるすべての質問 ( Q1Q2 ) への回答は、それが と同等であると&.誤って宣言しています。obj&.fooobj && obj.foo

この等価性が正しくないことを示すのは簡単です:

また、多重評価の問題もある。副作用のある式に置き換えるobjと、式でのみ副作用が 2 倍になることがわかり&&ます。

obj&.fooこれらの問題を回避する最も簡潔な2.3より前の同等物は何ですか?

0 投票する
2 に答える
789 参照

ruby - 安全なナビゲーション演算子 (&.) の NilCheck 修正

クラスのこの単純なメソッドはstatus、安全なナビゲーション演算子を使用してメソッドを実行するだけです。

しかし、reek は次の警告を報告します。

Nil Check を回避するために、このようなメソッドを適切に記述するにはどうすればよいですか?

思考ボットからのこの投稿も確認しましたが、安全なナビゲーション オペレーターには「多すぎる」ように思えます。

ルビー 2.3.1

0 投票する
4 に答える
6371 参照

html - 配列で使用できる安全なナビゲーション演算子のようなものはありますか?

オブジェクトのセーフ ナビゲーション オペレータを使用して非同期呼び出しをロードしましたが、これは非常に素晴らしいことです。配列でも同じことを再現できると思っていましたが、Angular コードにテンプレート解析エラーが表示されます。別の解決策であることは知って*ngIfいますが、安全なナビゲーション演算子のように、より簡単な (コードによる) 方法はありますか?

0 投票する
1 に答える
354 参照

angular - Angular で安全なナビゲーションを使用してデータ全体を渡す

特定のビューを表示するかどうかに project(data) を渡しています。ただし、ページを更新するとページが破棄されます。このdivは機能し<p class="admin">{{ project?.name }}</p>ます。ただし、以下のコードでは、更新をクリックするとエラーが発生します。更新をクリックすると、未定義のプロパティ 'material_projects' を読み取ることができないというエラーが表示されます。これで安全なナビゲーションとして渡すにはどうすればよいですか*ngIf="getProjectType(projects) === 'mat_exist'"

TS

TS