84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
注意:我很清楚 a = b ? c : d 是什么意思,可这不是我要问的问题。
三元运算符 a = b ?: c 是什么意思。注意, ?和: 是在一起的
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
帮你搜索了一下,见StackOverflow
a = b ?: c 是 a = b ? b : c 的简写。
a = b ?: c
a = b ? b : c
b = true c = false a = b ?: c // a = true b = false c = true a = b ?: c // a = true
虽然题主的问题的标签是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可以用三元运算来代替,如下: