各语言中的三元运算符与 golang 对比
三元运算符
定义
三元运算符是软件编程中的一个固定格式,语法是“条件表达式?表达式1:表达式2”。使用这个算法可以使调用数据时逐级筛选。
表达式:“()? :”。
()中进行二元运算
?在运算,就形成三元运算符
格式
如名字表示的三元运算符需要三个操作数。
语法为:条件表达式?表达式1:表达式2。
说明:问号前面的位置是判断的条件,判断结果为bool型,为true时调用表达式1,为false时调用表达式2。
其逻辑为:“如果条件表达式成立或者满足则执行表达式1,否则执行第二个。”常用在设置默认值,例如某个值不一定存在,则判断这个值是否存在,不存在给默认值(表达式2)。
Python中的三元运算符
在Python语言中,也有三元运算符。不过Python的三元运算符和java以及C#有所区别,语法格式为:
表达式1 if 条件表达式 else 表达式2
当表达式返回True时,返回结果表达式1,否则返回结果表达式2。示例:
c = a if a < b else b
php 中的三元运算符
$if_summary = $row['IF_SUMMARY']==2?'是':'否';
这句话的意思就等于是
if($row['IF_SUMMARY']==2){
$if_summary="是";
}else{
$if_summary="否";
}
三元运算符的功能与“if…else”流程语句一致,它在一行中书写,代码非常精练、执行效率更高。
java 中的三元运算符
用来完成简单的选择逻辑,即根据条件判断,从两个选择中选择一种执行。
使用格式:
(条件表达式)?表达式1:表达式2;
运算规则:
a) 判断条件表达式,结果为一个布尔值。
b) true,运算结果为表达式1
c) false,运算结果为表达式2
如:
int a = 10; int b = 20;
a==b?10:20; 结果为20
js 三元运算符
基本语法:
条件 ? 表达式1 : 表达式2
条件返回true时,执行表达式1,否则执行表达式2
在多条件运算中使用
条件1 ? 表达式1 : 条件2 ? 表达式2 : 条件3 ? 表达式3 : 表达式4
当条件1返回false,执行条件2,条件2返回false,执行条件3,条件3如果返回true,则执行表达式3,否则执行表达式4,以此类推
Ruby 三元运算符
有一个以上的操作称为三元运算符。第一个计算表达式的真假值,然后根据这个结果决定执行后边两个语句中的一个。条件运算符的语法如下:
运算符 | 描述 | 实例 |
---|---|---|
? : | 条件表达式 | 如果条件为真 ? 则值为 X : 否则值为 Y |
三元运算符:
journal_date = journal_issue ? journal_issue.year : nil
等价于
if !journal_issue.nil?
journal_date = journal_issue.yer
end
go 中的三元运算符
像这样 使用三元运算符你会发现没有办法实现它。
const pageNumber: number = query.pageNumber ? parseInt(query.pageNumber, 10): 1;
那是为什么呢?
因为Go 中没有三元运算操作,但是可以使用以下方法实现同样的结果:
if expr {
n = trueVal
} else {
n = falseVal
}
Go 语言中没有的原因是设计者发现该操作过于频繁地用于创建难以理解的复杂表达式。(这一点,Python 体现的淋漓尽致)
虽然上面那种形式比较长,但是很明显是更加清晰的。
一种语言仅需要一个条件控制语句即可。
引用
Why Go doesn’t have a ternary conditional operator [closed]
为什么 Go 语言没有三元运算符
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: