Go 变量和常量

最近在看Go相关的书籍,看到go相关的语法,非常的简洁和亮眼,就准备学习一下相关的资料,将自己看到的书籍记录一下笔记,补充一下工作之余的相关知识。先开始Go的语法

一:变量

  1.0:变量申明

  var a int //定义一个整形变量

  var b string //定义一个字符串

  var c [10]int //定义一个整形的数组

  var d []int //定义一个整形的数组切片

  var e *int //定义一个整形的指针

  var f map[string]interface{} //定义一个字典集合

  var func( value int) int //定义一个函数

  var (

      v1 int

      v2 string

    ) //定义多个变量 

 1.1:变量的初始化

  var v1 int= 10 // 正确的使用方式1

  var v2 = 10 // 正确的使用方式2,编译器可以自动推导出v2的类型

  v3 := 10 // 正确的使用方式3,编译器可以自动推导出v3的类型  =>var v3 int  v3=10(v3:=10错误 )

 1.2:变量的赋值

  除了上面的变量初始化赋值外,Go有一个很特色的赋值(多重赋值)

  i,j:=j,i 等价于下面

    var i int =10

    var j int =11

    var temp int  

    temp=i

    i=j

    j=temp

  这个赋值非常有特色,特别是比较大小的时候,简化了代码工作量,并且看着很舒服

 1.3:匿名变量

  在多返回值的时候,当我们只想获取指定的返回值,我们在这种情况可以使用"_"来代表一个变量,如下所示

  func GetName() (firstName, lastName, nickName string) { 

    return"May", "Chan", "Chibi Maruko"
  }

  var name string

 

  _,_,_,name=GetName()

二:常量

  2.0:字面上的常量

  指程序中硬编码的常量  如-12 ,1 。。等等

  2.1:常量的定义

  const Pi float64= 3.14159265358979323846

  const zero = 0.0 // 无类型浮点常量

  const (
    size int64= 1024
    eof = -1 // 无类型整型常量
  )

  const u, v float32= 0, 3 // u = 0.0, v = 3.0,常量的多重赋值

  const a, b, c = 3, 4, "foo"

  注意:常量的定义是在编译期的行为,所以右边的赋值不能是运行期间得到的值  例如:const v2 int=os.GetEnv("Home")

  2.2:预定义常量

  Go中预定义的常量 有三种 true ,false 和itoa 其中itoa比较特殊,如下

  const (

    i=itoa =>0

    j=itoa =>1

    k=itoa =>2  

  )

  在每一个const关键字出现时被重置为0,然后在下一个const出现之前,每出现一次iota,其所代表的数字会自动增1

  2.3:枚举

  学过C#的人都知道 枚举是一系列相关的变量,除了关键字区别外,内容都差不多,如下例子

  const(
    Sunday = iota
    Monday
    Tuesday
    Wednesday
    Thursday
    Friday
    Saturday
  )

  今天先到这里了,明天继续学习类型,坚持。。


  

 

 

 

posted @ 2014-04-15 23:16  Dark_liu  阅读(624)  评论(0编辑  收藏  举报