go不是動態語言。 go語言是Google開發的一種靜態強類型、編譯型、並髮型,並具有垃圾回收功能的程式語言,其變數(variable)是有明確類型的,編譯器也會檢查變數類型的正確性;因此在使用變數之前必須聲明資料類型需要,語法「var 變數名變數類型」。
本教學操作環境: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 形式的声明语句往往是用于需要显式指定变量类型地方,或者因为变量稍后会被重新赋值而初始值无关紧要的地方。
以上是go語言是動態語言嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!