問題タブ [ternary]
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.
java - 自動ボクシングによるNullPointerException-Java三項演算子の動作
NullPointerException
先日、三項演算子の予期しない型キャストが原因で、本当に奇妙なことに遭遇しました。この(役に立たない模範的な)関数を考えると:
コンパイル後、次の2つのコードセグメントが完全に同一になることを期待していました。
対。
。
の場合、 -ステートメントcondition
は正常に機能しますが、2番目のコードセグメントの三項演算子は。をスローします。三項演算は、結果を自動ボックス化して!?!に戻す前に、両方の選択肢を型キャストすることを決定したようです。実際、明示的にtoをキャストすると、例外はなくなります。言い換えると:true
if
NullPointerException
int
Integer
0
Integer
と同じではありません:
。
if-else
したがって、三項演算子と同等のステートメント(私が予期していなかったもの)の間にはバイトコードの違いがあるようです。これは3つの質問を提起します:なぜ違いがあるのですか?これは三項実装のバグですか、それとも型キャストの理由がありますか?違いがあるとすると、三項演算は同等のステートメントよりも多かれ少なかれパフォーマンスが高くなりますかif
(私は知っていますが、違いは大きくはありませんが、それでも)?
python - kwargsをre.sub()に渡します
Pythonでは、テンプレート文字列内に疑似三項演算子を実装しようとしています。kwargs
特定のキーがある場合、値が文字列に挿入されます。
re
モジュールには、私が必要としていることを正確に実行する方法がありre.sub()
ます。一致時に呼び出される関数を渡すことができます。私ができないことはそれに渡す**kwargs
ことです。コードは次のとおりです
if match.groups()[0] in kwargs:
もちろん、process_pseudo_ternarykwargs
は空なので、 lineが問題になります。
これらを渡す方法についてのアイデアはありますか?m.sub(function, string)
引数を取りません。
最終的な文字列は次のようになりますsome text val_if_true some text
(辞書には「pseudo_test」という名前のキーがあるため)。
文字列内の三項演算子の別の実装に自由にリダイレクトしてください。Pythonの条件付き文字列フォーマットを知っています。文字列のフォーマットタプル/辞書ではなく、文字列にターナリを含める必要があります。
javascript - 三項演算子について
次のコードがあります。
どこから始めようかさえも混乱しています。|| です 二項演算子?なぜ最初にコンマがあるのですか?このコードがどのように機能するかを理解し、通常の if,else を使用して書き直したいのですが、ヒントはありますか? ありがとう!
php - ネストされた ternery 演算子が奇妙な結果を出力する
これにより、「オプション 1」が出力されます。何が悪いのかわかりません。
ありがとう!
python - 奇妙な結果をもたらす三元と印刷の組み合わせ
私は、何かが真実である場合は文字列を出力し、そうでない場合は別の文字列を出力するためにターナリを使用しようとしていました(十分に単純ですよね?)。エラーは発生せず、問題は発生しないようです。ただし、実行中は...
...印刷します
2回。たとえば、次のように出力します。
必要に応じて、変数が何であるかを確認するために(これは単なる概念の問題であるため、問題ではありません)、ここで残りのコードを確認できます。
それが変数かもしれないと思って、私はステートメントを別々に(三元なしで)印刷しようとしました、そしてそれらは私が期待したように(すなわち奇妙な重複なしで)出てきました。変数が問題ないことを知って、(文字列が混ざらないように)括弧で文字列を囲んでみましたが、Pythonはそれらを文字通りに解釈するため、文字列ではなく配列として出力されました。また、Pythonはデータ型を組み合わせることができないため、(コンマの代わりに)+記号は機能しません。私はステートメントをに変更することになりました
そしてそれはうまくいきます。
コーディングはさておき、最初の文字列が2回印刷されるのはなぜですか?
jsp - レンダリングされたプロパティJSTL内でブール値と正規表現のチェックを返すJSP/JavaTernary演算子
サーブレット例外を無効な式エラーとしてスローするサンプルコードを次に示します。
したがって、データ型は次のとおりです。
JSTLタグ内でこれを使用したい:
これが機能する場合は、JSP自体でRegExチェックを実行する代わりに、メソッド呼び出しを追加したいと思います。それも機能しません-おそらく同じ構文の問題に関係しています。
したがって、私のJSPコードは次のとおりです。
これも機能しません:
したがって、beanName.methodName1は次のようになります。
または、Beanクラスでgetter / setterメソッドのアプローチを使用して、プロパティを取得および設定してみました。JSPでも機能しません。解決方法がわからない。特定の結果を表示するには、別のクラスのBeanデータを使用して検証を実行する必要があります。
これがセッター/ゲッターのアプローチです。これを使用する方法を理解してから、JSP検証で使用する必要があります。
beanName.javaクラス
php - PHP 文字列内の三項演算子
文字列内の単純な三項演算子を評価したいのですが、正しい構文が見つからないようです。
私のコードは次のようになります。
しかし、私はそれを適切に機能させることができないようです。これを実装する方法についてのアイデアはありますか?
python - Python 三項条件の両側でステートメントを使用する
Python の 3 項条件の両側でステートメントを使用することが禁止されているのはなぜですか? 以下の単純な構文の例のいくつかがあいまいまたは壊れている可能性がある明確な理由はわかりませんが、それが許可されていないのには十分な理由があるに違いありません!
ステートメントを 3 項で使用できるようにすることが危険または不明確になる可能性がある例を挙げていただけますか?
c++ - 三項演算子をcppに入れることは可能ですか?
「<<」に似た三項put演算子をcppに実装することを考えていました。
これは可能ですか?すでに存在しますか?1つのコメント:私はこれを見たのを覚えています:
これはすでに三項演算子ではないでしょうか?
python - 複雑なif-else条件を単純化して、len(list)=0かどうかをチェックします-Python
send1またはsent2の長さがゼロであるかどうか、およびゼロ以外のリストを含むリストとして設定 する必要があるかどうかを確認しようとしています。しかし、if-else条件、私が書いたのは複雑なようです。これを行う簡単な方法は何ですか?sent_witn_not_null