二、Go语言基础入门
@Author:Runsen
最近在從 Java/python 語言轉(zhuǎn)型到 go 語言,本文是Go 基礎(chǔ)系列的文章,不會刻意追求面面俱到,但該有知識點都會覆蓋。
下面我們就來簡單的看看 go 語言里的這些語法吧。
文章目錄
- 變量
- 基本類型
- 常量
變量
Go 語言變量名由字母、數(shù)字、下劃線組成,其中首個字符不能為數(shù)字。其實這就是Python,Java編碼的命名要求。
Go 語言聲明變量的一般形式是使用 var 關(guān)鍵字,這個和JavaScript很相似。
比如,我們聲明一個為int類型的變量a:
var a int可以看出,Go語言聲明變量的方式為:
var <變量名> <變量類型>我們還可以同時聲明多個類型相同的變量:
var <變量名1>, <變量名2>, <變量名3>, ... <變量類型>使用分組同時聲明多個類型不同的變量:
var (<變量名1> <變量類型1><變量名2> <變量類型2><變量名3> <變量類型3>... )我們可以發(fā)現(xiàn)Go編程語言聲明變量與Python和Java不同,Python不需要聲明變量的類型。Java聲明變量是將類型寫在最前面,沒有var關(guān)鍵字。Go聲明變量的類型卻在后面
下面是一個具體的例子,需要注意的是數(shù)值類型默認為 0,布爾類型默認為 false,字符串默認為""(即空字符串)
package mainimport "fmt"var i bool//類型在后func main() {var a, b, c int//多個var d stringfmt.Println(i, a, b, c, d)j, k := 2, 3fmt.Println(j, k) }# false 0 0 0 # 2 3變量d由于是空字符串,所以打印出來了但是看不到。
除此之外還有一種更簡潔的聲明變量的方式,就是使用:=聲明變量。
當(dāng)我們使用:=聲明變量時,不用寫var也不用寫類型,但是這里需要強調(diào)這種方式只能在函數(shù)內(nèi)部使用,不能在函數(shù)外部使用。因此如果在函數(shù)外部聲明變量時,只能使用var。
此外,這里還要一個非常需要注意的一點:我們聲明的變量必須要使用,如果聲明了變量,但是沒使用,會在編譯時報錯。
比如:
package mainimport "fmt"func main() {var i boolvar j int //聲明了,但沒使用,會報錯 j declared and not usedfmt.Println(i) }基本類型
像其他語言一樣,go 有布爾類型,字符串類型,整數(shù)類型,浮點數(shù)類型和復(fù)數(shù)類型。
布爾類型為bool,值可取true或false,默認值為false。
字符串類型為string,默認為空字符串""。
整數(shù)類型分為:
- 有符號數(shù):int、int8、int16、int32 (rune)、int64
- 無符號數(shù):uint、uint8 (byte)、uint16、uint32、uint64
具體的數(shù)值范圍查看下表
| int8 | 1 | -128~127 (-2^(8-1) ~ 2^7-1) |
| uint8 | 1 | 0~255 (0 ~ 2^8-1) |
| int16 | 2 | -32768~32767 |
| uint16 | 2 | 0~65535 |
| int32 | 4 | -2^31 ~ 2^31-1 (-2147483648~2147483647) |
| uint32 | 4 | 0~2^32-1 (0~4294967295) |
| int64 | 8 | -2^63 ~2^63-1 |
| uint64 | 8 | 0~2^63 |
其中int和uint的兩種類型的長度相同,取決于具體的編譯器,比如在32位系統(tǒng)上通常為32位,在64位系統(tǒng)上通常為64位。
浮點數(shù)類型有兩種:float32和float64,注意沒有所謂的float類型。
復(fù)數(shù)類型也有兩種:complex64和complex128
下面寫一個定義變量賦值綜合例子。
package main // 包名 import "fmt" // 導(dǎo)入var (a = 1b = "hello"c = true )func main() {fmt.Println(c)variableNoValue()variableQuick() }func variableNoValue() {var a intfmt.Println(a) }func variableQuick() {a, b := 5, "hello"fmt.Println(a, b) }# true # 0 # 5 hello常量
Go語言使用const來聲明并賦值常量,常量在編譯期間就確定,后續(xù)不能更改,也就是我們常數(shù)的常量不可以修改。
const Pi float32 = 3.1415926 const Pi = 3.1415926Go 語言中的常量定義會有一些默認的規(guī)則,主要有:
- 定義常量時必須有值。
- 常量組中如果不對常量賦值的話,常量的值與上面一個是一致的。
- 常量與iota混用的話,iota會從0開始計數(shù),多一個常量就會增加
這里大家可能對iota有些陌生,iota 在 const關(guān)鍵字出現(xiàn)時將被重置為 0(const 內(nèi)部的第一行之前),const 中每新增一行常量聲明將使 iota 計數(shù)一次(iota 可理解為 const 語句塊中的行索引)。
下面寫一個定義綜合例子。
package mainimport ("fmt" )func main() {const (a = 2b // b=2c = 5d // d=5e // e=5)fmt.Println("Hello, Go常量:", a, b, c, d, e)const (f = 1g = 1h = iota // 前面有2個常量所以這里h =2i // i 在h之后,也會自動+1j // 同理與j,自動+1k = 10l = iota // iota 并不會因為上面的k值變化,而變化依然是6)fmt.Println("Hello, Go常量:", f, g, h, i ,j, k, l) }# Hello, Go常量: 2 2 5 5 5 # Hello, Go常量: 1 1 2 3 4 10 6總結(jié)
以上是生活随笔為你收集整理的二、Go语言基础入门的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 股票分红是好事还是坏事
- 下一篇: 趸足缴费什么意思