go 語言作為靜態型別語言。由於編譯時,編譯器會檢查變數的型別,所以要求所有的變數都要有明確的型別。
變數宣告之後才可以使用 。
宣告變數(關鍵字var
)一般有以下五種方法,其中前兩種同樣也可用於定義常量(關鍵字const
)
var
其中 var 是宣告變數關鍵字,name 是變數名,type 是型別。
使用 var ,雖然只指定了型別,但是 go 會對其進行隱式初始化,比如 string 型別就初始化為空字串,int 型別就初始化為0,float 就初始化為 0.0,bool型別就初始化為false,指標型別就初始化為 nil。
若想在宣告過程,順便也初始化,可以這樣寫:
var name string = "edemao 部落格"
在 go 檔案中的完整**如下,為了不寫重複性的**,後續只展示關鍵**:
package main
import "fmt"
func main()
在 go 中一定要使用雙引號,表示字串,而在單引號表示rune 型別的字元,因此也可以將其簡化為:
var name = "edemao 部落格"
var rate float32 = 0.89
宣告多個變數,一是可以按照第一種方法寫成多行,此外還可以使用小括號:
var (
name string
age int
*** string
)
使用:=
(推導宣告寫法或短型別宣告法),編譯器會自動根據右值型別推斷出左值的對應型別。對變數進行宣告和(顯式)初始化:
name := "edemao 部落格"
// 等價於
var name string = "edemao 部落格"
// 等價於
var name = "edemao 部落格"
此方法只能用於函式內部
name, age := "edemao 部落格", 24
//同時支援變數交換
var a int = 100
var b int = 200
b, a = a, b
package main
import "fmt"
func main()
/*輸出
age: 28
ptr: 0xc000010098*/
new 函式,是 go 裡的乙個內建函式。使用表示式new(type)將建立乙個type 型別的匿名變數,初始化為type 型別的零值,然後返回儲存該變數位址的指標(指標型別為*type
)。
package main
import "fmt"
func main()
/*輸出:
ptr address: 0xc000010098
ptr value: 0
*/
用new建立變數和普通變數宣告語句方式建立變數其實無區別,只是可以不需要宣告乙個臨時變數的名字和可以在表示式中使用new(type)。簡言之,new函式類似語法糖。以下兩種方式等價:
/ 使用 new(type)
func newint() *int
// 使用傳統的方式
func newint() *int
對於go語言,變數/常量都只能宣告一次,宣告多次,編譯就會報錯。
但也有例外,這就要說到乙個特殊變數:匿名變數 (下劃線'_'),也稱作佔位符,或者空白識別符號。
匿名變數,優點有三:
通常我們用匿名變數來接收必須接收,但是又不會用到的值,就像這樣:
func getdata() (int, int)
func main()
極速引流十八式 1
招式一 免費式 用免費引流法快速引流!2 你可以設定一些拼團或者砍價活動,拿砍價活動來說,你可以在金貓教育後台設定乙個砍價商品,只要使用者邀請了夠多的親朋好友來給他助力,他就可以免費獲得該課程。3 如果你想用免費贈品的方式,你也可以在金貓教育後台商家乙個線下小禮品當做贈品,例如20元的樣子,也可以發...
鬧洞房新招二十八式
第一招 如數家珍 結婚當天,新娘衣著單薄,鬧洞時,賓客可以想法子讓新人互玩划拳遊戲,輸一拳即褪去身上衣物或手飾一件,直到?不能再褪了為止。第二招 高跟杯酒 慫恿新娘讓新郎為了表示對她愛意深深,想法子讓他用高跟鞋,連喝三杯。第三招 圓桌武士 讓新郎新娘拿凳子坐到桌面上,共飲同心酒。第四招 愛的蘋果 為...
Go語言自學筆記
package main import fmt func main func f1 ch chan int 如果容量大於 0,通道就是非同步的了 緩衝滿載 傳送 或變空 接收 之前通訊不會阻塞,元素會按照傳送的順序被接收。如果容量是0或者未設定,通訊僅在收發雙方準備好的情況下才可以成功。要在首要位置...