問題タブ [ternary-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.
php - PHPでは、条件付き変数の置換は可能ですか?
PHPで次のようなことが可能かどうか疑問に思いました。
または私は次のことをしなければなりませんか?
一般に、文字列の連結は文字列を長くしすぎると読みにくくなる可能性があるため、連結よりも置換を好みます。
そのコンテキストは、データベースクエリに基づいてデフォルトでselectタグのどのオプションを選択するかを決定しているということです。
完全なコンテキスト:
ruby - Rubyの三元を乾かす
条件付きロジックを実行してから、条件の一部を返したいという状況がよくあります。真または偽の式で条件の一部を繰り返さずにこれを行うにはどうすればよいですか?
例えば:
繰り返さないようにする方法はありますClassName.method
か?
実際の例を次に示します。
php - PHPでの三項演算子と変数の再割り当て
三項演算子とif/else構造の質問を熟読しました。通常の状況では、if / else構造よりも三項演算子を使用してもパフォーマンスが低下/向上しないことは理解していますが、これについての言及はありません。状況。PHPに固有の言語(ただし、言語に依存しない詳細は大歓迎です)は、次のような状況でインタープリターが値を再割り当てします。
これは非効率的であると評価されるので$foo = $foo;
、またはインタプリタは単にこの評価を見落とし/破棄しますか?
ちなみに、次の点についてはどうでしょうか。
c++ - 三項演算子
三項オプターで両方の分岐が同じ基本型を持つか、1つに変換可能でなければならない理由を説明する論理的な理由はありますか? このルールがないことの何が問題なのですか?なぜ私はこのようなことをすることができないのですか (これは最良の例ではありませんが、私の言いたいことを明確にしています):
java - 三項演算子と最終変数を使用した場合の予期しない出力
このコードスニペットについて考えてみましょう。
このコードを実行するとX
、コンソールに2つ表示されると思います。ただし、実際の出力は次のとおりです。
88
X
三項演算子に関するJavaの仕様を見ると、次のことがわかりました。
オペランドの1つがT型であり、Tがbyte、short、またはcharであり、もう1つのオペランドがint型の定数式であり、その値がT型で表現可能である場合、条件式の型はTです。
したがって、最初の出力では'X'
charがと見なされるためint
、が出力されます88
。
final
ただし、を使用すると2番目の出力の動作が変わる理由がわかりません。
php - より短い/よりクリーンなコードの3項ステートメント
これを書くためのより短く、よりクリーンな方法はありますか?
c# - 三項条件演算子を使用する場合、TypeA が TypeB に変換可能かどうか、またはその逆が可能かどうかをコンパイラが気にするのはなぜですか?
重複の可能性:
C# で条件演算子を使用して結果を入力する
基本的に、次のようなコードがあります。
どこ:
これが、上記のステートメントが機能することを期待していた理由ですが、次のコンパイル エラーが返されます。
「ImageEditor.ActiveEffectList」と「ImageEditor.EffectList」の間に暗黙的な変換がないため、条件式のタイプを判別できません
php - PHPでこのステートメントの三項演算子を作成することは可能ですか?
PHPでこのステートメントの三項演算子を作成することは可能ですか?
c++ - C++ の条件演算子「?:」
このステートメントの理由:
と等しくない:
と等しい :
理由を教えてください。なんで ?
java - Javaの三項演算子では、式の結果が偽の値になっても最初の引数を評価できますか?
最近、ランダムなアドホック テストでコードに異常なバグを発見しました。というわけで、テストケースを作りました。
これが私のテストケースです:
A と B は java.lang.Integer 型として定義されており、それらの値をリクエストに設定するためのダイレクト セッター メソッドがあります。
列挙も含まれます。プリミティブ整数値と、このコードで使用されるメソッドがあります。関連する部分をここに投稿します。
さて、これが混乱している方法です。そのメソッドでテスト メソッドを呼び出すと、NPE が発生しますが、メソッドの最後の行で発生します。
テストでは、A と B の両方が null に設定されます。したがって、A != null は false を返します。しかし、 : B 行の行番号で NullPointerException が発生します。
私の推測では、何らかの理由で最初の式 Swapper.findSwapperToUse(A).c が評価されているため、オートボクシングによって A.intValue() が呼び出され、null 値で NullPointerException が発生したと考えられます。デバッグを通じて、findSwapperToUse() が呼び出されていないことがわかっています。
ただし、この質問によると、これは発生しないはずです: Java 3 項 (即時の場合) 評価
選択されていないオペランド式は、条件式の特定の評価では評価されません。
null (B) を返しても NullPointerException は発生しません。ここで null の結果を返してもまったく問題ありません。
一体何が起こっているのですか?
編集:私はこれを避けるためにコードを変更したことを追加するのを忘れていました.ifステートメントをまっすぐに使用してください.