8

標準の三項構文を覚えておくための良いトリックを持っている人はいますか?

具体的には「?」または「:」が最初に来ます。私はこれを何年にもわたって一貫して逆行させてきました。

4

8 に答える 8

23

チェックしている条件は質問のようなものなので、疑問符が最初に来ます。

x > 0 ? 1 : 0

この文は、「X は 0 よりも大きいですか? なら 1 です。そうでなければ、0 です」という 3 つの英語の文と考えてください。ステートメントの各句に対して 1 つの文があります。

述語:

x > 0 ? /* Is x greater than 0? */

「真の」ブランチ:

1 /* Then 1. */

「false」ブランチ:

: 0 /* Else, 0. */
于 2009-09-15T17:58:15.197 に答える
10

どの記号が最初に来るかを覚えている限り、最初の部分は「本当かどうか」という質問なので、疑問符が最初に来るということだけを考えています。

私はこのように構文を考えます

Question ? Yes : No
于 2009-09-15T17:59:07.207 に答える
0

こんなふうになります:

myVariable = this.testMethod() ? 'value for true case' : 'value for false case'
于 2009-09-15T17:58:15.710 に答える
0

Python では、通常の英文として読みます。

 a equals b if condition is true else c
于 2009-09-15T17:58:58.407 に答える
0

次のように考えてみてください。三項ステートメントは、質問、質問の答えが「はい」の場合に実行するコード、答えが「いいえ」の場合のコードの 3 つの部分で構成されます。「?」は英文と同じように質問の後に来ます。

于 2009-09-15T17:59:13.213 に答える
0

「?」はクエスチョンマークなので「もし」という意味です。

コロンは「今来る」、「それからする」という意味です。

三項演算子の良いところは、特に構文を覚えるのに問題がある場合に、使用を強制されないことです。ほとんどの場合、より読みやすいifステートメントを使用してください。

いいえ、三項式はifステートメントよりも優れたパフォーマンスを発揮しません。

于 2009-09-15T18:00:11.120 に答える
-1

間違っても単体テストに合格する場合は、問題ではないか、テストがコードのパスを十分にカバーしていないかのどちらかです。入力してからテストの合格/不合格を得るまでのギャップが長すぎる場合、それは別の問題です。優れた高速なテストが存在する場合、小さな構文の問題はほとんど問題になりません。

于 2009-09-15T18:32:44.627 に答える