タグ付けされた質問 「logical-operators」

論理演算子は、ブール式の評価に役立つ記号です。これらは、ブール値をサポートするほぼすべてのプログラミング言語にあります。一般的な例は&&(AND)、||です。(または)、! (NOT)、==([値]等しい)、===([値とタイプ]等しい)、> =(以上)、<=(以下)、>(より大きいより大きい)、および<(より小さい)

8
「and」と「or」は非ブール値でどのように機能しますか?
私はpythonを学ぼうとしていて、素晴らしくて短いが完全に意味のないコードに出くわしました コンテキストは: def fn(*args): return len(args) and max(args)-min(args) 私はそれが何をしているのかを取得していますが、なぜpythonはこれを行うのですか-つまり、True / Falseではなく値を返しますか? 10 and 7-2 5を返します。同様に、andおよびtoを変更すると、機能が変更されます。そう 10 or 7 - 2 10を返します。 これは合法/信頼できるスタイルですか、それともこれについて何か問題がありますか?


4
論理演算子の記述バージョン
これは私が今まで見た中で唯一の場所andでorありnot、C ++では実際の演算子としてリストされています。NetBeansでテストプログラムを作成したときに、構文エラーがあるかのように赤い下線が引かれ、Webサイトが間違っていることがわかりましたが、NetBeansはコンパイルと実行が正常に行われたため、間違っています。 私は!好かれnotているように見えますが、and&amp;&amp; の読みやすさはor文法上の兄弟よりも優れているようです。なぜこれらのバージョンの論理演算子が存在し、なぜだれもそれを使用していないように見えるのですか?これは本当に有効なC ++ですか、それとも言語に含まれていたCとの互換性ですか?

3
オペレーターを短絡させてください|| および&&はnull許容ブール値に存在しますか?RuntimeBinderは時々そう考えます
条件付き論理演算子 ||と&amp;&amp;、短絡論理演算子としても知られるC#言語仕様を読みました。私には、これらがnull許容ブール値、つまりオペランド型Nullable&lt;bool&gt;(これも記述されているbool?)に存在するかどうかが不明であるように思われたので、非動的型付けで試してみました。 bool a = true; bool? b = null; bool? xxxx = b || a; // compile-time error, || can't be applied to these types これで問題は解決したようです(仕様を明確に理解できませんでしたが、Visual C#コンパイラの実装が正しいと仮定すると、今ではわかりました)。 しかし、私dynamicもバインディングを試してみたかったのです。だから私は代わりにこれを試しました: static class Program { static dynamic A { get { Console.WriteLine("'A' evaluated"); return true; } } static dynamic B { get …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.