W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
此篇文章將簡單介紹一下Go語言中的表達式和語句,為后面的(特別是下一篇)文章做一個鋪墊。
簡單說來,一個表達式表示一個值,而一條語句表示一個操作。 但是在實際中,有些個表達式可能同時表示多個值,有些語句可能是由很多更基本的語句組成的。 另外,根據(jù)場合不同,某些語句也可以被視為表達式。
Go中,某些語句被稱為簡單語句。Go中各種流程控制語句的某些部分可能會被要求必須為簡單語句或者表達式。 詳見下一篇文章對Go中基本流程控制語句的介紹和解釋。
本篇文章將不對表達式和語句作出詳盡的解釋。 詳盡的解釋需要大量的篇幅。 本文只是列出一些表達式和語句的例子,并非包括所有的表達式和語句的種類,但是簡單語句的所有種類都會被列出來。
Go中大多數(shù)的表達式都是單值表達式。一個單值表達式只表示一個值。 某些表達式可以表示多個值,它們被稱為多值表達式。
以后(不包括本文),如果沒有特殊說明,當表達式這個詞被提及的時候,它表示一個單值表達式。
前面的幾篇文章介紹的字面量、變量和具名常量等均屬于單值表達式。它們可稱為基本表達式。
前面的運算操作符一文中介紹的運算符操作(不包括賦值部分)也都屬于單值表達式。
如果一個函數(shù)至少返回一個值,則它的調(diào)用屬于表達式。 特別的,如果此函數(shù)返回兩個或兩個以上的值,則對它的調(diào)用稱為多值表達式。 不返回任何結(jié)果的函數(shù)的調(diào)用不屬于表達式。
以后的某篇文章中介紹的方法可以看作是特殊的函數(shù)。 所以上述對函數(shù)的解釋同樣適用于方法。
事實上,以后我們將會了解到自定義函數(shù)(包括方法)本身都屬于函數(shù)類型的值,所以它們都是單值表達式。
通道的接收數(shù)據(jù)操作(不包括賦值部分)也屬于表達式。通道將在以后詳解。
Go中的一些表達式,包括剛提及的通道的接收數(shù)據(jù)操作,可能會表示可變數(shù)量的值。 根據(jù)不同的場景,這樣的表達式可能呈現(xiàn)為單值表達式,也可能呈現(xiàn)為多值表達式。 我們將在以后的文章中了解到這樣的表達式。
Go中有六種簡單語句類型:
x op= y
這種運算形式。
x++
)和自減(x--
)語句。
注意:和C/C++不一樣,在Go中,自增和自減語句不能被當作表達式使用。
簡單語句這個概念在Go中比較重要,所以請牢記這六種簡單語句類型。
下面是一個非簡單語句的不完整列表:
{
?,終止于一個右大括號?}
?。 一個顯式代碼塊中可以包含若干子語句。return
?)語句。// 一些非簡單語句:
import "time"
var a = 123
const B = "Go"
type Choice bool
func f() int {
for a < 10 {
break
}
// 這是一個顯式代碼塊。
{
// ...
}
return 567
}
// 一些簡單語句的例子:
c := make(chan bool) // 通道將在以后講解
a = 789
a += 5
a = f() // 這是一個純賦值語句
a++
a--
c <- true // 一個通道發(fā)送操作
z := <-c // 一個使用通道接收操作
// 做為源值的變量短聲明語句
// 一些表達式的例子:
123
true
B
B + " language"
a - 789
a > 0 // 一個類型不確定布爾值
f // 一個類型為“func ()”的表達式
// 下面這些即可以被視為簡單語句,也可以被視為表達式。
f() // 函數(shù)調(diào)用
<-c // 通道接收操作
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: