各語言中的三元運算子與 golang 對比

kuibatian發表於2020-03-24

各語言中的三元運算子與 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 協議》,轉載必須註明作者和本文連結

每天5分鐘,與你一起蛻變!上海php自學中心,目前專注於php,python,golang~撒花!
S3d25uqwht.png!large
公眾號7Dn78VKKcW.jpg!large

相關文章