Go 語言變量名由字母、數字、下划線組成,其中首個字母不能為數字。
一、Go的語言結構
1、Go的語言基礎部分由這幾個部分組成
- 包聲明
- 引入包
- 函數
- 變量
- 語句&表達式
- 注釋
比如下面這個簡單的代碼:
func main() {
fmt.Println("第一個程序")
}
需要注意的是,如果想把單獨的.go文件作為獨立的可執行文件的時候。需要在代碼的第一行加上
package main
文件的入口方法為:
func main(){
}
go的語法和c是很像的,但是又沒有c那么底層。所以有c基礎的人,學習go會特別的快。需要注意的一點是:
go聲明變量的時候是把變量類型放在變量的后面的,如下所示:
var userName string = "Tinywan"
go也可以不指定數據類型,但是必須要賦值。如果不賦值,自動類型檢查就無法起到作用,如下所示:
var userName = "Tinywan"
// 或者
var userName = ""
附一個空格值給變量也是可以的,就是不能不賦值,也不能為null。而且在go中也沒有null的概念,取而代之的是nil:意思為0、無的意思。(Lua也是這樣子的)
還可以使用默認值,如下所示:
var res bool
二、GO語言變量聲明的方式
1、指定變量類型,聲明后如果不做賦值,那么使用默認值
//沒有進行賦值,但是指明了是什么類型、go會自動加上空值。
var a string
2、不指定變量類型,需要進行賦值操作。
//可以不指定變量類型,通過變量值,go會自行判斷該變量的類型。
var a=1
3、不使用var關鍵字,直接:=對變量進行賦值操作。
//這種方式是省略了var,但是這種方式能對新的變量使用,對已經聲明的變量使用會報錯。
a:=1
注意:三種變量的聲明形式的作用都是一樣的,要么賦值可自動判斷其類型,要么不賦值,指定變量類型,就這么兩點。還需要注意的是,go的變量是如果被聲明了,那么必須使用,不然會報錯,如果不想使用可以加上_=varName,表示為已拋棄的變量。
//已聲明,但未使用
var a=1
//標識為已拋棄的變量。
_=a
4、go的變量在已經被聲明后,是不能使用:=再次賦值的。
//這樣是錯誤的
var a=1
a:=2
但是可以使用=為已聲明的變量賦新的值。
//這樣做是可以的。
var a=1
a=2
而且如果變量值沒被使用,那么請加上以拋棄的標識。
_=a
5、go可以直接聲明多個變量,通過函數可以返回多個返回值,比如:
//一次性聲明所有的變量類型為string類型
var name1,name2,name3 string
//函數返回多個返回值
func getName(name1,name2,name3,name4){
return "aa","bb","cc","dd"
}
//返回多個返回的值的函數需要用多個變量進行接受
var a, b, c, d = getName()
6、go可使用var關鍵字聲明全局變量,但是:=這種方式是不能用在全局變量中的。:=只能用在函數體內部。
var (
a int
b bool
xx,yy,dd string="xx","yy","dd"
//這里省略變量類型也是可以的。
zz,aa="zz","aa"
)
比如像這樣,這樣做會報語法錯誤
var(
a:=1
)
syntax error: unexpected :=