問題タブ [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.
c - 三項演算子の異常な使用
私はCの初心者です。三項演算子が有用であり、if/elseブロックよりもコードが少ない理由を理解しています。
私は維持するためにいくつかのCコードを与えられました、そして私が気づいたことの1つは、以前のプログラマーがこのような三項演算子を使用したことです
これはこれとまったく同じことを達成しますか?
これは単なるスタイルのものですか?おそらく、「if」ではなく「if not」myIntを考えるのは理にかなっていますか?
c++ - 右辺値ではない三項演算子の結果
このプログラムをC++11コンパイラでコンパイルする場合、ベクトルは関数の外に移動されません。
このようにインスタンスを返すと移動します。
これがideoneのデモです。
gcc4.7.0とMSVC10で試してみました。どちらも同じように動作します。
これが発生する理由は次
のとおりです。三項演算子の型は、returnステートメントが実行される前に評価されるため、左辺値です。この時点で、aとbはまだxvaluesではありません(まもなく期限切れになります)。
この説明は正しいですか?
これは規格の欠陥ですか?
これは明らかに意図された動作ではなく、私の意見では非常に一般的なケースです。
c - Cのelseなしの三項演算子.
Cでelseなしで三項演算子を使いたいのですが、どうすればいいですか?
このようなもの。何もない部分で何を使用しますか?
php - PHP 三項演算子を使用して特定の値を返す
私はこれをグーグルで検索し、すでにスタックオーバーフローを閲覧しました。私は自分のコードを短くしようとしていますが、この作業方法を以下に示します。三項スタイルで書き直したいと思います。これが可能かどうか、もしそうなら、何が間違っているのか教えてもらえますか。ありがとう。
私はこれから始めました:
予期しないリターンエラーが発生します。
値の前に戻り値をリストし、機能しなかった別のスタック オーバーフロー ソリューションを使用してみました。
これにより、メソッドが正しく閉じられないなど、予期しない public に関する別のエラーが発生します。
java - 三項演算子を使用してメソッドを呼び出すJAVA
私は使用しようとしていますか?どのメソッドを呼び出すかを決定しますが、変数を割り当てる必要はありません。私の質問: 変数を割り当てずに三項演算子を使用する方法はありますか?
それ以外の
c - 指定された 3 進数文字列の 1 つまたは 2 つの文字を含む連続した部分文字列
インタビューの 1 つの質問は次のとおりでした。3 進文字列が与えられた場合、与えられた 3 進文字列の 1 つまたは 2 つの文字のみを含む連続した部分文字列の数を見つけます。3 進文字列は、最大 3 文字で構成される文字列です。例のように: bcabb は集合 {a,b,c} の 3 値文字列です。上記の例に対する答えは、b,c,a,b,b,bc,ca,ab,bb ie.,9 となります。
注: 部分文字列は、一意性ではなく開始インデックスと終了インデックスによって決定されます。
この質問で従うべきアルゴリズムを誰か教えてください。
jstl - JSTL を 3 進数に変更
このJSTLタグをJSTL三項に変換するのを手伝ってくれませんか
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の条件付き文字列フォーマットを知っています。文字列のフォーマットタプル/辞書ではなく、文字列にターナリを含める必要があります。