讓咱們一塊兒Go(五)

前言

轉眼間,已經2013年了,新的一年,仍是繼續學習Go啊,本系列不當心跨年了,哈哈哈。上篇中咱們初步瞭解了Go語言的變量聲明,今天咱們首先仍是要繼續聊聊變量。文章更新較慢,請諒解,由於公司項目太忙,白天基本沒時間,晚上抽空寫的,且本人水平有限,不免有不對之處。數組

1、再談Go語言變量

上篇中,咱們知道在Go語言中是經過var 關鍵字來聲明變量的,那麼聲明變量,咱們沒有給變量賦值,那些變量是否有初始值呢?app

爲了證實這點,其實很容易,你只要寫些代碼,而後打印出來就能夠了。下面測試一部分數據:函數

 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] int10     var g *int11     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.0ui

4.pointer(指針) map array slice ... -> nilspa

在Go語言中也能夠一次聲明多個變量:指針

var a,b,c intcode

若是是不一樣類型的變量則能夠這樣:接口

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,函數,接口等,將在後續中詳細講到這一類型再作介紹,由於,若是這裏就介紹,又會使得本篇長度變長,內容過多,本着一向的簡短宗旨,因此請耐心等等。

2、Go語言的基本類型

                 type                     length                    des

  1. bool                       1                        true, false。==========不能把⾮零值看成 true 。
  2. byte                       1                        uint8 別名
  3. rune                       4                        int32  別名。表明⼀個 Unicode  Code Point。int/uint 依據所運⾏的平臺,多是 32bit 或 64bit。
  4. int8/uint8                1                       -128 ~  127; 0  ~  255
  5. int16/uint16            2                      -32768  ~  32767; 0  ~  65535int32/uint32 4 -21 億 ~  21億,  0  ~  42億
  6. int64/uint64            8
  7. float32                    4                       精確到 7  個⼩數位
  8. float64                    8                       精確到 15 個⼩數位
  9. complex64               8
  10. complex128            16
  11. uintptr                                             ⾜夠保存指針的 32 位或 64 位整數
  12. array                                               值類型 如:[2]int
  13. struct                                              值類型
  14. string                                              值類型
  15. map                                                引⽤類型
  16. channel                                           引⽤類型
  17. slice                                                引⽤類型 如:  []int
  18. interface                                          接⼝類型
  19. function                                            函數類型

 

 哇,上面好大一堆,不過不要緊。大部分還都是很熟悉的,若是你寫過其它語言的話,至於不熟悉的那些,在從此的日子裏,將會逐一攻破,至於簡單的,這裏也不將細說,由於實在沒啥好說的,就像你的名字同樣,你爲何叫這個名字?好吧,能夠扯你的祖先姓氏開始,再扯名字含義,固然變量也能夠扯,能夠扯到內存......但對於如今來講意義不大,因此關於變量的基礎今天就到這裏了,若是你已經忍不住了能夠去網上查閱更多資料。

3、變量類型轉換

講完各類變量,固然也得講講他們之間如何轉換的。記住在Go語言中,不支持隱式轉換,須要你指明。就像下面同樣:

var a int = 2

var b float64 = float64(a)

 規則很簡單 就是 <你須要轉換的類型>(原始變量)

是否是很簡單?其它類型請自行嘗試,我太懶了不想這裏作機械的重複。

 

4、常量

說完變量再來講說常量,常量就如它名字同樣,正常的量?固然不是,哈哈,常量其實能夠理解爲就是否是變量(……*&&……一堆人開罵)其實簡單的說,常量是指在程序運行過程當中,其值不可改變的量.

那麼如何聲明定義常量,看下面:

1 const x int32 = 1992 const y = "Hello"3 const a, b, c = "apple", true, "jobs"  4 const (5     male= "jack"6     fmale = false7 )

今天就到這裏,但願對你們有幫助。

相關文章
相關標籤/搜索