前言
轉眼間,已經2013年了,新的一年,還是繼續學習Go啊,本系列不小心跨年了,哈哈哈。上篇中我們初步了解了Go語言的變量聲明,今天我們首先還是要繼續聊聊變量。文章更新較慢,請諒解,因為公司項目太忙,白天基本沒時間,晚上抽空寫的,且本人水平有限,難免有不對之處。
一、再談Go語言變量
上篇中,我們知道在Go語言中是通過var 關鍵字來聲明變量的,那么聲明變量,我們沒有給變量賦值,那些變量是否有初始值呢?
為了證明這點,其實很容易,你只要寫些代碼,然后打印出來就可以了。下面測試一部分數據:
1 package main 2 import "fmt" 3 func main(){ 4 var a int 5 var b float32 6 var c bool 7 var d string 8 var e []int 9 var f map[string] int 10 var g *int 11 if nil == e{ 12 fmt.Print("e is nil \n") 13 } 14 if nil == f{ 15 fmt.Print("f is nil \n") 16 } 17 fmt.Print(a,b,c,d,e,f,g) 18 }
通過上面的例子,我們已經明確了Go語言聲明的變量默認是有初始值的。大致分成以下幾種:
1.int int32 int64 -> 0
2.bool -> false
3.float32 float64 ->0.0
4.pointer(指針) map array slice ... -> nil
在Go語言中也可以一次聲明多個變量:
var a,b,c int
如果是不同類型的變量則可以這樣:
var (
a int
b bool
)
當然也可以直接聲明並初始化多個變量:
var a,b,c int = 1,2,3
var a int ,c bool = 1,false
為了簡化,也可以使用類型推斷的特性,如下聲明初始化:
var a,b = false,"am"
a,b := true,3
以上只是對Go語言中最簡單的幾種類型的聲明初始化做了介紹,更復雜的類型,例如數組,map,函數,接口等,將在后續中詳細講到這一類型再做介紹,因為,如果這里就介紹,又會使得本篇長度變長,內容過多,本着一貫的簡短宗旨,所以請耐心等等。
二、Go語言的基本類型
type length des
-
bool 1 true, false。==========不能把⾮零值當作 true 。
-
byte 1 uint8 別名
-
rune 4 int32 別名。代表⼀個 Unicode Code Point。int/uint 依據所運⾏的平台,可能是 32bit 或 64bit。
-
int8/uint8 1 -128 ~ 127; 0 ~ 255
-
int16/uint16 2 -32768 ~ 32767; 0 ~ 65535int32/uint32 4 -21 億 ~ 21億, 0 ~ 42億
-
int64/uint64 8
-
float32 4 精確到 7 個⼩數位
-
float64 8 精確到 15 個⼩數位
-
complex64 8
-
complex128 16
-
uintptr ⾜夠保存指針的 32 位或 64 位整數
-
array 值類型 如:[2]int
-
struct 值類型
-
string 值類型
-
map 引⽤類型
-
channel 引⽤類型
-
slice 引⽤類型 如: []int
-
interface 接⼝類型
-
function 函數類型
哇,上面好大一堆,不過沒關系。大部分還都是很熟悉的,如果你寫過其它語言的話,至於不熟悉的那些,在今后的日子里,將會逐一攻破,至於簡單的,這里也不將細說,因為實在沒啥好說的,就像你的名字一樣,你為什么叫這個名字?好吧,可以扯你的祖先姓氏開始,再扯名字含義,當然變量也可以扯,可以扯到內存......但對於現在來說意義不大,所以關於變量的基礎今天就到這里了,如果你已經忍不住了可以去網上查閱更多資料。
三、變量類型轉換
講完各種變量,當然也得講講他們之間如何轉換的。記住在Go語言中,不支持隱式轉換,需要你指明。就像下面一樣:
var a int = 2
var b float64 = float64(a)
規則很簡單 就是 <你需要轉換的類型>(原始變量)
是不是很簡單?其它類型請自行嘗試,我太懶了不想這里做機械的重復。
四、常量
說完變量再來說說常量,常量就如它名字一樣,正常的量?當然不是,哈哈,常量其實可以理解為就是不是變量(……*&&……一堆人開罵)其實簡單的說,常量是指在程序運行過程中,其值不可改變的量.
那么如何聲明定義常量,看下面:
1 const x int32 = 199 2 const y = "Hello" 3 const a, b, c = "apple", true, "jobs" 4 const ( 5 male= "jack" 6 fmale = false 7 )
今天就到這里,希望對大家有幫助。