問題タブ [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.
javascript - javascriptにnull合体(Elvis)演算子または安全なナビゲーション演算子はありますか?
例で説明します:
エルビス オペレーター (?: )
「エルビス演算子」は、Java の三項演算子を短縮したものです。これが便利な例の 1 つは、式が false または null に解決された場合に「適切なデフォルト」値を返す場合です。簡単な例は次のようになります。
安全航行事業者 (?.)
安全なナビゲーション演算子は、NullPointerException を回避するために使用されます。通常、オブジェクトへの参照がある場合、オブジェクトのメソッドまたはプロパティにアクセスする前に、それが null でないことを確認する必要がある場合があります。これを回避するために、セーフ ナビゲーション オペレータは次のように、例外をスローする代わりに単純に null を返します。
ruby - Ruby が安全なナビゲーション演算子に独自の構文を使用するのはなぜですか?
Ruby 2.3.0 では、前のステートメントの値がnilでない場合にのみメソッドを呼び出す新しい演算子を導入することで、チェーンされたメソッド呼び出しの nil 処理を容易にする安全なナビゲーション構文が導入されています。これは、C#、Groovy、Swift などに既に存在する機能です。たとえばGroovyでは、構文は次のとおりです。
これは基本的に、fooがnullでない限り、結果の値がfoo.barの値であることを意味します。その場合、戻り値もnullであるため、例外はスローされません。また、C# (ヌル条件演算子と呼ばれる) とSwift (オプショナル チェーン式と呼ばれる) もこの表記法を使用します。
したがって、構文は他の言語では非常に標準的なようです。さて、なぜRubyの構文は
代わりは?
ruby - nil の安全なナビゲーション演算子 (&.)
Ruby 2.3 で Safe ナビゲーション operator( &.
) (別名、孤独な演算子) が導入されたため、nil
オブジェクトに対する動作が奇妙に思えます。
このように動作するように設計されていますか?または、孤独なオペレーターを追加するときにすり抜けたエッジケースはありますか?
ruby - 安全なナビゲーション演算子 (&.) の NilCheck 修正
クラスのこの単純なメソッドはstatus
、安全なナビゲーション演算子を使用してメソッドを実行するだけです。
しかし、reek は次の警告を報告します。
Nil Check を回避するために、このようなメソッドを適切に記述するにはどうすればよいですか?
思考ボットからのこの投稿も確認しましたが、安全なナビゲーション オペレーターには「多すぎる」ように思えます。
ルビー 2.3.1
html - 配列で使用できる安全なナビゲーション演算子のようなものはありますか?
オブジェクトのセーフ ナビゲーション オペレータを使用して非同期呼び出しをロードしましたが、これは非常に素晴らしいことです。配列でも同じことを再現できると思っていましたが、Angular コードにテンプレート解析エラーが表示されます。別の解決策であることは知って*ngIf
いますが、安全なナビゲーション演算子のように、より簡単な (コードによる) 方法はありますか?
angular - Angular で安全なナビゲーションを使用してデータ全体を渡す
特定のビューを表示するかどうかに project(data) を渡しています。ただし、ページを更新するとページが破棄されます。このdivは機能し<p class="admin">{{ project?.name }}</p>
ます。ただし、以下のコードでは、更新をクリックするとエラーが発生します。更新をクリックすると、未定義のプロパティ 'material_projects' を読み取ることができないというエラーが表示されます。これで安全なナビゲーションとして渡すにはどうすればよいですか*ngIf="getProjectType(projects) === 'mat_exist'"
TS
TS