各语言中的三元运算符与 golang 对比

三元运算符#

各语言中的三元运算符与 golang 对比

定义#

三元运算符是软件编程中的一个固定格式,语法是 “条件表达式?表达式 1:表达式 2”。使用这个算法可以使调用数据时逐级筛选。

表达式:“()? :”。

() 中进行二元运算

? 在运算,就形成三元运算符

格式#

如名字表示的三元运算符需要三个操作数。

语法为:条件表达式?表达式 1:表达式 2

说明:问号前面的位置是判断的条件,判断结果为 bool 型,为 true 时调用表达式 1,为 false 时调用表达式 2。

其逻辑为:“如果条件表达式成立或者满足则执行表达式 1,否则执行第二个。” 常用在设置默认值,例如某个值不一定存在,则判断这个值是否存在,不存在给默认值 (表达式 2)。

Python 中的三元运算符#

各语言中的三元运算符与 golang 对比

在 Python 语言中,也有三元运算符。不过 Python 的三元运算符和 java 以及 C# 有所区别,语法格式为:
表达式 1 if 条件表达式 else 表达式 2
当表达式返回 True 时,返回结果表达式 1,否则返回结果表达式 2。示例:

c = a if a < b else b

php 中的三元运算符#

各语言中的三元运算符与 golang 对比


$if_summary = $row['IF_SUMMARY']==2?'是':'否';

这句话的意思就等于是

if($row['IF_SUMMARY']==2){

$if_summary="是";

}else{

$if_summary="否"}

三元运算符的功能与 “if…else” 流程语句一致,它在一行中书写,代码非常精练、执行效率更高。

java 中的三元运算符#

各语言中的三元运算符与 golang 对比

用来完成简单的选择逻辑,即根据条件判断,从两个选择中选择一种执行。

使用格式:

(条件表达式)?表达式 1:表达式 2;

运算规则:

a) 判断条件表达式,结果为一个布尔值。

b) true,运算结果为表达式 1

c) false,运算结果为表达式 2

如:

int a = 10; int b = 20;

a==b?10:20; 结果为 20

js 三元运算符#

各语言中的三元运算符与 golang 对比

基本语法:

条件 ? 表达式1 : 表达式2 

条件返回 true 时,执行表达式 1,否则执行表达式 2

在多条件运算中使用

条件1 ? 表达式1 : 条件2 ? 表达式2 : 条件3 ? 表达式3 : 表达式4 

当条件 1 返回 false,执行条件 2,条件 2 返回 false,执行条件 3,条件 3 如果返回 true,则执行表达式 3,否则执行表达式 4,以此类推

Ruby 三元运算符#

各语言中的三元运算符与 golang 对比

有一个以上的操作称为三元运算符。第一个计算表达式的真假值,然后根据这个结果决定执行后边两个语句中的一个。条件运算符的语法如下:

运算符 描述 实例
? : 条件表达式 如果条件为真?则值为 X : 否则值为 Y

三元运算符:

 journal_date = journal_issue ? journal_issue.year : nil

等价于

if !journal_issue.nil?

  journal_date = journal_issue.yer

end

go 中的三元运算符#

各语言中的三元运算符与 golang 对比

像这样 使用三元运算符你会发现没有办法实现它。

const pageNumber: number = query.pageNumber ? parseInt(query.pageNumber, 10): 1;

那是为什么呢?

因为 Go 中没有三元运算操作,但是可以使用以下方法实现同样的结果:

if expr {
    n = trueVal
} else {
    n = falseVal
}

各语言中的三元运算符与 golang 对比

Go 语言中没有的原因是设计者发现该操作过于频繁地用于创建难以理解的复杂表达式。(这一点,Python 体现的淋漓尽致)

虽然上面那种形式比较长,但是很明显是更加清晰的。

一种语言仅需要一个条件控制语句即可。

引用#

Why Go doesn’t have a ternary conditional operator [closed]
为什么 Go 语言没有三元运算符

本作品采用《CC 协议》,转载必须注明作者和本文链接
嗨,我是波波。曾经创业,有收获也有损失。我积累了丰富教学与编程经验,期待和你互动和进步! 公众号:上海 PHP 自学中心
wangchunbo
司机 @ 某医疗行业
文章
312
粉丝
352
喜欢
565
收藏
1135
排名:61
访问:12.6 万
私信
所有博文
社区赞助商