注意:我很清楚 a = b ? c : d 是什么意思,可这不是我要问的问题。
三元运算符 a = b ?: c 是什么意思。注意, ?和: 是在一起的
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
幫你搜尋了一下,見StackOverflow
a = b ?: c 是 a = b ? b : c 的簡寫。
a = b ?: c
a = b ? b : c
雷雷
雖然題主的問題的標籤是C和C++,但我寫了一個PHP的腳本測試了一下,結果如下:
php<?php $b = true; $c = false; $a = $b ?: $c; var_dump($a); // 输出true $b = false; $c = true; $a = $b ?: $c; var_dump($a); // 输出true
php
<?php $b = true; $c = false; $a = $b ?: $c; var_dump($a); // 输出true $b = false; $c = true; $a = $b ?: $c; var_dump($a); // 输出true
從輸出結果來看,a = b ?: c的意思是:如果b為true,則a = b,如果b為false,則a = c
b
true
a = b
false
a = c
格式應該是
(boolean表達式) ? a : b
若boolean表達式的內容為true,則a。 若boolean表達式的內容為false, 則b。
舉例:
javapublic int test(int a) { if (a > 0) { return 1; } else { return -1; } }
java
public int test(int a) { if (a > 0) { return 1; } else { return -1; } }
上面這個if-else可以用三元運算來代替,如下:
java public int test(int a) { return (a > 0) ? 1 : -1; }
public int test(int a) { return (a > 0) ? 1 : -1; }
幫你搜尋了一下,見StackOverflow
雷雷
雖然題主的問題的標籤是C和C++,但我寫了一個PHP的腳本測試了一下,結果如下:
從輸出結果來看,
a = b ?: c
的意思是:如果b
為true
,則a = b
,如果b
為false
,則a = c
格式應該是
若boolean表達式的內容為true,則a。
若boolean表達式的內容為false, 則b。
舉例:
上面這個if-else可以用三元運算來代替,如下: