問題タブ [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.
php - ?: PHP 5.3 とは?
http://twitto.org/より
Twitto は、PHP 5.3 以降で利用可能ないくつかの新機能を使用します。
- DIR定数_
- オペレーター
- 無名関数
PHP 5.3の?:で番号 2 は何をしますか?
また、匿名関数とはどういう意味ですか? それは昔からあるものではありませんか?
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
ruby - Else なしの Ruby 三項演算子
単純なコマンドとして、「If do-this」と「do-this」のルビイディオムはありますか?
たとえば、私は現在やっています
else 句を空のままにしますが、最後に nil を指定する必要のない、より慣用的な方法があると思います。(また、この場合、複数行のコードを取り上げるのは無駄だと思います。
php - PHPで条件文に割り当てを行うことはできますか?
次のように、php の条件文に割り当てを行うことができますか。
c# - 条件演算子は暗黙的にキャストできませんか?
私はこの小さなC#の癖に少し困惑しています:
与えられた変数:
以下をコンパイルします。
しかし、これはしません:
エラーは次のように述べています:「タイプ'int'を'byte'に暗黙的に変換することはできません。」
そしてもちろん、この怪物はコンパイルされます:
何が起きてる?
編集:
VS2008、C#3.5を使用
mysql - この MySQL クエリに何か問題がありますか?
恐ろしくコーディングされたサイトを更新しようとしていますが、この複数の IF ステートメントにエラーがあると思います。私はしばらくの間グーグルをしてきましたが、MySQL UPDATE クエリで複数の IF の例を見つけることができません。
アイデアは、行の別の列に基づいて行の特定の列を更新したいということです。
クエリは次のとおりです。
どんな助けでも大歓迎です。
boolean - ブール式のオペランドの優先順位は?
次のようなブール式を構造化する利点はありますか:
それ以外の
私は常に 2 番目の方法を使用してきました。常に変数を最初のオペランドとして置き、意味のあるブール演算子を使用していましたが、最近、最初の方法を使用するコードを読みました。より多くの。
これで、上記の例のように、変数が最初のオペランドではないことを意味する場合でも、<
使用するすべてのブール式を書き始めました。<=
私には読みやすさが向上するように思えますが、それは私だけかもしれません:)
他の人はこれについてどう思いますか?
c# - 条件演算子は遅いですか?
私は、それぞれの場合に巨大なswitchステートメントとif-elseステートメントを含むコードを見ていて、すぐに最適化の衝動を感じました。優れた開発者として、私は常にいくつかの難しいタイミングの事実を把握するために着手し、3つのバリエーションから始めるべきです。
元のコードは次のようになります。
/li>条件演算子を使用するように変換された2番目のバリアント:
/li>キーと文字のペアが事前に入力された辞書を使用したひねり:
/li>
注:2つのswitchステートメントの大文字と小文字はまったく同じであり、辞書の文字数は同じです。
1)と2)のパフォーマンスは多少似ており、3)は少し遅くなると予想していました。
ウォームアップのために10.000.000回の反復を2回実行してから時間を計った各メソッドについて、驚いたことに、次の結果が得られました。
- 呼び出しあたり0.0000166ミリ秒
- 呼び出しあたり0.0000779ミリ秒
- 呼び出しあたり0.0000413ミリ秒
どうすればいいの?条件演算子は、if-elseステートメントよりも4倍遅く、辞書検索よりもほぼ2倍遅くなります。ここで重要な何かが欠けていますか、それとも条件演算子は本質的に遅いですか?
アップデート1:私のテストハーネスについて一言。Visual Studio2010のリリースコンパイル済み.Net3.5プロジェクトで、上記の各バリアントに対して次の(擬似)コードを実行します。コードの最適化がオンになり、DEBUG/TRACE定数がオフになります。時間指定の実行を行う前に、ウォームアップのために測定中のメソッドを1回実行します。shift
runメソッドは、trueとfalseの両方に設定され、入力キーの選択セットを使用して、メソッドを多数の反復で実行しました。
Runメソッドは次のようになります。
アップデート2:さらに掘り下げて、1)と2)で生成されたILを調べたところ、メインのスイッチ構造は予想どおりに同じであることがわかりましたが、ケース本体にはわずかな違いがあります。これが私が見ているILです:
1)if / elseステートメント:
2)条件演算子:
いくつかの観察:
- 条件演算子は、
shift
trueに等しい場合は分岐し、if/elseshift
はfalseの場合に分岐します。 - 1)は実際には2)よりもいくつかの命令にコンパイルされます
shift
が、がtrueまたはfalseの場合に実行される命令の数は、2つで同じです。 - 1)の命令順序は、常に1つのスタックスロットのみが占有され、2)は常に2つをロードするようになっています。
これらの観察結果のいずれかは、条件演算子のパフォーマンスが遅くなることを意味しますか?関係する他の副作用はありますか?
functional-programming - 関数型言語で、zipまたはzipWithスタイルの関数で使用する要素を条件付きで選択するにはどうすればよいですか?
私はzipWith
2つのシーケンスの対応する要素を操作する標準関数に精通していますが、関数型言語(またはいくつかの関数型機能を備えた言語)では、に基づいて、圧縮する要素のペアを条件付きで選択する最も簡潔な方法は何ですか? 3番目のシーケンス?
この好奇心は、Excelでいくつかのことをスクラッチしているときに発生しました。
A1:A10、B1:B10、C1:C10、D1、E1、F1の数字で、次のような式を使用しています。
IFステートメントの乗算の各半分は、ブール値の配列を生成し、それらは一緒に乗算(AND)されます。これらのブール値は、10個の商のどれが最終的に平均化されるかを制御するため、10個の個別のIFステートメントが評価されているかのようになります。
たとえば、A1:A10の10個の値の2番目と3番目だけが条件(> =D1と<=E1の両方)を満たす場合、式は次のように評価されます。
AVERAGE関数はたまたまブール値とテキスト値を無視するため、2番目と3番目の商の平均を取得するだけです。
これはHaskellで簡潔に行うことができますか?Erlang?LINQまたはF#?Python?等..
この特定の例では、上記の式が完全に正しいわけではないことに注意してください。基本的なポイントを理解するために省略されています。A1:A10の10個の要素のいずれも条件を満たさない場合、10個のFALSE値がAVERAGEに渡され、誤って0と評価され
ます。式は次のように記述する必要があります。
NA()
がエラーを生成し、平均が未定義であることを示します 。
アップデート:
答えてくれてありがとう。最初のリストの対応する要素が特定の基準を満たしている場合に、2番目と3番目のリストの要素のペアに関数を適用するという点で、最初の質問は非常に簡単であることに気付きました。そのためのノーマン・ラムゼーの答えを受け入れました。
しかし、次に行ったのは、任意の数のリストからの対応する要素を表すタプルに関数を適用できるかどうか疑問でした。したがって、の制限についてLebertramに質問しましたzipWithN
。
適用可能なファンクターに関するApocalispの情報から、Pythonによる引数リストの解凍(任意の数の引数に関数を適用する)に関する情報が得られました。
上記の特定の例では、リストの要素の商を平均すると(nums
リストのリストはここにあります)、Pythonは次のように実行できるように見えます。
より一般的には、関数f
と述語p
(およびavg
)を使用すると、これは次のようになります。
c# - 判読可能かどうか: C# 複数の三項演算子 + 一致しない場合はスロー
次の C# コードは判読できますか?
ここで、Throw は次のように定義されます。
私はそれが慣用的な C# ではないことを知っています。しかし、あなたはそれを一目で、あるいは二度目で理解できますか?それとも、私はあまりにも遠くに迷いましたか?