問題タブ [conditional-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 投票する
12 に答える
13033 参照

delphi - Delphiに条件演算子はありますか、またはこれからありますか?

私はDelphiから手を離しすぎたと思います。ここ数年、JavaとPHPで忙しくしていました。さて、Delphiの小さな仕事に戻ったとき、JavaとPHPの両方でサポートされている条件演算子が本当に恋しいことに気づきました。

Delphiプログラムでこのような行を見つける場所はいくつありますか?

シンプルなところ

十分でしょう。これについて私が気に入っているのは、コードを短縮するだけでなく、ヘルパーs:string変数を宣言しないようにすることです。

条件演算子がDelphiの一部ではないのはなぜですか?また、これらはサポートされる予定ですか?2009バージョンのDelphi(ジェネリック)用に作成された言語拡張機能がかなりあることに気づいたので、この機能を追加してみませんか?

0 投票する
9 に答える
3888 参照

java - 条件演算子を使用して、特定のメソッドを呼び出すオブジェクトを選択しますか?

私は 2 つのコレクションと、いくつかの基準が満たされているかどうかに基づいて、これらのコレクションのいずれかに追加されるアイテムを持っています。

ややうっかりして、書くことが合法であるという事実に出くわしました

それ以外の

1つ目は私を賢く感じさせますが(常にプラスです)、長期的な可読性、保守性などについては確信が持てません.メソッドを変更する場所は 1 つになります (2 つではなく、条件演算子を介して switch ステートメントを実装している場合はおそらく多くの場所になります)。主な欠点は、それが当てはまらない場合に発生します (つまり、いくつかのケースにメソッド呼び出しを追加する必要があり、他のケースには追加しない場合)。

2 つの方法 (または他の解決策) の長所と短所は何ですか?

条件演算子を使用してメソッドを呼び出すオブジェクトを設定するこの特定のインスタンスが正しい選択であると思わない場合、それが妥当な場合はありますか?

0 投票する
3 に答える
47468 参照

php - ?: PHP 5.3 とは?

重複の可能性: PHP 演算子「?」とは と「:」が呼び出され、彼らは何をしますか?

http://twitto.org/より

Twitto は、PHP 5.3 以降で利用可能ないくつかの新機能を使用します。

  1. DIR定数_
  2. オペレーター
  3. 無名関数

  1. PHP 5.3の?:で番号 2 は何をしますか?

  2. また、匿名関数とはどういう意味ですか? それは昔からあるものではありませんか?

0 投票する
12 に答える
218438 参照

c# - IF ステートメントの OR 演算子とは

C# では、OR を指定する方法:

ヘルプで見つけられませんでした。

アップデート:

私のコードは次のとおりです。

私のエラーは次のとおりです。

エラー 1 演算子 '||' タイプ 'bool' および 'string' のオペランドには適用できません C:\Documents and Settings\Sky View Barns\My Documents\Visual Studio 2005\Projects\FOL Ministry\FOL Ministry\Downloader.cs 63 21 FOL Ministry

0 投票する
5 に答える
53714 参照

ruby - Else なしの Ruby 三項演算子

単純なコマンドとして、「If do-this」と「do-this」のルビイディオムはありますか?

たとえば、私は現在やっています

else 句を空のままにしますが、最後に nil を指定する必要のない、より慣用的な方法があると思います。(また、この場合、複数行のコードを取り上げるのは無駄だと思います。

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

php - PHPで条件文に割り当てを行うことはできますか?

次のように、php の条件文に割り当てを行うことができますか。

0 投票する
3 に答える
5616 参照

c# - 条件演算子は暗黙的にキャストできませんか?

私はこの小さなC#の癖に少し困惑しています:

与えられた変数:

以下をコンパイルします。

しかし、これはしません:

エラーは次のように述べています:「タイプ'int'を'byte'に暗黙的に変換することはできません。」

そしてもちろん、この怪物はコンパイルされます:

何が起きてる?

編集:

VS2008、C#3.5を使用

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

mysql - この MySQL クエリに何か問題がありますか?

恐ろしくコーディングされたサイトを更新しようとしていますが、この複数の IF ステートメントにエラーがあると思います。私はしばらくの間グーグルをしてきましたが、MySQL UPDATE クエリで複数の IF の例を見つけることができません。

アイデアは、行の別の列に基づいて行の特定の列を更新したいということです。

クエリは次のとおりです。

どんな助けでも大歓迎です。

0 投票する
5 に答える
174 参照

boolean - ブール式のオペランドの優先順位は?

次のようなブール式を構造化する利点はありますか:

それ以外の

私は常に 2 番目の方法を使用してきました。常に変数を最初のオペランドとして置き、意味のあるブール演算子を使用していましたが、最近、最初の方法を使用するコードを読みました。より多くの。

これで、上記の例のように、変数が最初のオペランドではないことを意味する場合でも、<使用するすべてのブール式を書き始めました。<=私には読みやすさが向上するように思えますが、それは私だけかもしれません:)

他の人はこれについてどう思いますか?

0 投票する
8 に答える
7240 参照

c# - 条件演算子は遅いですか?

私は、それぞれの場合に巨大なswitchステートメントとif-elseステートメントを含むコードを見ていて、すぐに最適化の衝動を感じました。優れた開発者として、私は常にいくつかの難しいタイミングの事実を把握するために着手し、3つのバリエーションから始めるべきです。

  1. 元のコードは次のようになります。

    /li>
  2. 条件演算子を使用するように変換された2番目のバリアント:

    /li>
  3. キーと文字のペアが事前に入力された辞書を使用したひねり:

    /li>

注:2つのswitchステートメントの大文字と小文字はまったく同じであり、辞書の文字数は同じです。

1)と2)のパフォーマンスは多少似ており、3)は少し遅くなると予想していました。

ウォームアップのために10.000.000回の反復を2回実行してから時間を計った各メソッドについて、驚いたことに、次の結果が得られました。

  1. 呼び出しあたり0.0000166ミリ秒
  2. 呼び出しあたり0.0000779ミリ秒
  3. 呼び出しあたり0.0000413ミリ秒

どうすればいいの?条件演算子は、if-elseステートメントよりも4倍遅く、辞書検索よりもほぼ2倍遅くなります。ここで重要な何かが欠けていますか、それとも条件演算子は本質的に遅いですか?

アップデート1:私のテストハーネスについて一言。Visual Studio2010のリリースコンパイル済み.Net3.5プロジェクトで、上記の各バリアントに対して次の(擬似)コードを実行します。コードの最適化がオンになり、DEBUG/TRACE定数がオフになります。時間指定の実行を行う前に、ウォームアップのために測定中のメソッドを1回実行します。shiftrunメソッドは、trueとfalseの両方に設定され、入力キーの選択セットを使用して、メソッドを多数の反復で実行しました。

Runメソッドは次のようになります。

アップデート2:さらに掘り下げて、1)と2)で生成されたILを調べたところ、メインのスイッチ構造は予想どおりに同じであることがわかりましたが、ケース本体にはわずかな違いがあります。これが私が見ているILです:

1)if / elseステートメント:

2)条件演算子:

いくつかの観察:

  • 条件演算子は、 shifttrueに等しい場合は分岐し、if/elseshiftはfalseの場合に分岐します。
  • 1)は実際には2)よりもいくつかの命令にコンパイルされますshiftが、がtrueまたはfalseの場合に実行される命令の数は、2つで同じです。
  • 1)の命令順序は、常に1つのスタックスロットのみが占有され、2)は常に2つをロードするようになっています。

これらの観察結果のいずれかは、条件演算子のパフォーマンスが遅くなることを意味しますか?関係する他の副作用はありますか?