让咱们一块儿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 )

今天就到这里,但愿对你们有帮助。