站長資訊網
最全最豐富的資訊網站

go語言是動態語言嗎

go不是動態語言。go語言是Google開發的一種靜態強類型、編譯型、并發型,并具有垃圾回收功能的編程語言,其變量(variable)是有明確類型的,編譯器也會檢查變量類型的正確性;因此在使用變量之前必須聲明數據類型需要,語法“var 變量名 變量類型”。

go語言是動態語言嗎

本教程操作環境:windows7系統、GO 1.18版本、Dell G3電腦。

go不是動態語言,而是靜態語言。

Go(又稱 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 開發的一種靜態強類型、編譯型、并發型,并具有垃圾回收功能的開源編程語言。

動態語言和靜態語言介紹

  • 動態語言(弱類型語言)是運行時才確定數據類型的語言,變量在使用之前無需申明類型,通常變量的值是被賦值的那個值的類型。比如Php、Asp、JavaScript、Python、Perl等等。

var s ="hello"; var i = 0; var b = true;
登錄后復制

  • 靜態語言(強類型語言)是編譯時變量的數據類型就可以確定的語言,大多數靜態語言要求在使用變量之前必須聲明數據類型。比如Java、C、C++、C#、Go等。

String s="hello";    //String 類型的變量 boolean b=true;    //boolean 類型的變量 int i=0;    //int 類型的變量
登錄后復制

  • 弱類型語言是數據類型可以被忽略的語言。它與強類型語言相反,一個變量可以賦不同數據類型的值。一個變量的類型是由其上下文決定的,效率更高。

  • 強類型語言是必須強制確定數據類型的語言,一旦一個變量被指定了某個數據類型,如果不經過強制轉換,那么它就永遠是這種數據類型。一個變量的類型是申明的時候就已經確定的,更安全。

Golang 變量的聲明(使用var關鍵字)

Go語言是靜態類型語言,因此變量(variable)是有明確類型的,編譯器也會檢查變量類型的正確性。在數學概念中,變量表示沒有固定值且可改變的數。但從計算機系統實現角度來看,變量是一段或多段用來存儲數據的內存。

聲明變量的一般形式是使用 var 關鍵字:

var name type
登錄后復制

  • var 是聲明變量的關鍵字

  • name 是變量名

  • type 是變量的類型

需要注意的是,Go語言和許多編程語言不同,它在聲明變量時將變量的類型放在變量的名稱之后。這樣做的好處就是可以避免像C語言中那樣含糊不清的聲明形式,例如:int* a, b; 。其中只有 a 是指針而 b 不是。如果你想要這兩個變量都是指針,則需要將它們分開書寫。而在 Go 中,則可以和輕松地將它們都聲明為指針類型:

var a, b *int
登錄后復制

Go語言的基本類型有:

  • bool

  • string

  • int、int8、int16、int32、int64

  • uint、uint8、uint16、uint32、uint64、uintptr

  • byte // uint8 的別名

  • rune // int32 的別名 代表一個 Unicode 碼

  • float32、float64

  • complex64、complex128

當一個變量被聲明之后,系統自動賦予它該類型的零值:int 為 0,float 為 0.0,bool 為 false,string 為空字符串,指針為 nil 等。所有的內存在 Go 中都是經過初始化的。

變量的命名規則遵循駱駝命名法,即首個單詞小寫,每個新單詞的首字母大寫,例如:numShips 和 startDate 。

變量的聲明有幾種形式,通過下面幾節進行整理歸納。

標準格式

Go語言的變量聲明的標準格式為:

var 變量名 變量類型
登錄后復制

變量聲明以關鍵字 var 開頭,后置變量類型,行尾無須分號。

批量格式

覺得每行都用 var 聲明變量比較煩瑣?沒關系,還有一種為懶人提供的定義變量的方法:

var (     a int     b string     c []float32     d func() bool     e struct {         x int     } )
登錄后復制

使用關鍵字 var 和括號,可以將一組變量定義放在一起。

簡短格式

除 var 關鍵字外,還可使用更加簡短的變量定義和初始化語法。

名字 := 表達式
登錄后復制

需要注意的是,簡短模式(short variable declaration)有以下限制:

  • 定義變量,同時顯式初始化。

  • 不能提供數據類型。

  • 只能用在函數內部。

和 var 形式聲明語句一樣,簡短變量聲明語句也可以用來聲明和初始化一組變量:

i, j := 0, 1
登錄后復制

下面通過一段代碼來演示簡短格式變量聲明的基本樣式。

func main() {    x:=100    a,s:=1, "abc" }
登錄后復制

因為簡潔和靈活的特點,簡短變量聲明被廣泛用于大部分的局部變量的聲明和初始化。var 形式的聲明語句往往是用于需要顯式指定變量類型地方,或者因為變量稍后會被重新賦值而初始值無關緊要的地方。

贊(0)
分享到: 更多 (0)
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
亚洲av日韩aⅴ无码色老头| 国产精品青草久久久久福利99| 久久久精品日本一区二区三区| 国产伦精品一区二区免费| 日韩视频无码日韩视频又2021 | 精品一区精品二区制服| 久热这里只精品99国产6_99| 99麻豆久久久国产精品免费| 国产成人精品大尺度在线观看| 亚洲日韩国产欧美一区二区三区 | 亚洲国产精品无码观看久久| 亚洲国产精品综合久久20| 人人妻人人澡人人爽人人精品电影| 一本久久a久久精品vr综合| 久久久精品视频免费观看| 亚洲精品WWW久久久久久| 麻豆人妻少妇精品无码专区| 日韩精品无码区免费专区| 日韩一本之道一区中文字幕| 国产成人精品午夜二三区| 国产精品乱码在线观看| 国产精品va一区二区三区| 亚洲精品在线免费观看视频| 日韩精品无码熟人妻视频| 国产女人精品视频国产灰线| 久久精品综合一区二区三区| 国产成人亚洲精品91专区手机| 人妻精品久久久久中文字幕| 无码日韩人妻av一区免费| 无码欧精品亚洲日韩一区| 日韩电影一区二区三区| 国产精品V亚洲精品V日韩精品| 国产一区精品视频| 国产91精品一区| 国产精品久久香蕉免费播放| 国产精品一区二区资源| 国产日韩精品一区二区三区| 国产最新精品视频| 日韩精品一区二区三区中文| 国产在线精品二区韩国演艺界| 国产一卡2卡3卡四卡精品一信息|