• Go基础(二):变量和常量


    变量


    Go 语言里面定义变量有多种方式。

    使用 var 关键字是 Go 最基本的定义变量方式,与 C 语言不同的是 Go 把变量类型放在变量名后面:

    // 定义一个名称为 “variableName”,类型为 "type" 的变量
    var variableName type

    定义多个变量

    // 定义三个类型都是 “type” 的变量
    var vname1, vname2, vname3 type

    定义变量并初始化值

    // 初始化 “variableName” 的变量为 “value” 值,类型是 “type”
    var variableName type = value

    同时初始化多个变量

    /*
      定义三个类型都是 "type" 的变量, 并且分别初始化为相应的值
      vname1 为 v1,vname2 为 v2,vname3 为 v3
    */
    var vname1, vname2, vname3 type= v1, v2, v3

    你是不是觉得上面这样的定义有点繁琐?没关系,因为 Go 语言的设计者也发现了,有一种写法可以让它变得简单一点。我们可以直接忽略类型声明,那么上面的代码变成这样了:

    /*
      定义三个变量,它们分别初始化为相应的值
      vname1 为 v1,vname2 为 v2,vname3 为 v3
      然后 Go 会根据其相应值的类型来帮你初始化它们
    */
    var vname1, vname2, vname3 = v1, v2, v3

    你觉得上面的还是有些繁琐?好吧,我也觉得。让我们继续简化:

    /*
      定义三个变量,它们分别初始化为相应的值
      vname1 为 v1,vname2 为 v2,vname3 为 v3
      编译器会根据初始化的值自动推导出相应的类型
    */
    vname1, vname2, vname3 := v1, v2, v3
    

    现在是不是看上去非常简洁了?:= 这个符号直接取代了 var 和 type, 这种形式叫做简短声明。不过它有一个限制,那就是它只能用在函数内部;在函数外部使用则会无法编译通过,所以一般用 var 方式来定义全局变量。

    _(下划线)是个特殊的变量名,任何赋予它的值都会被丢弃。在这个例子中,我们将值 35 赋予 b,并同时丢弃 34:

    _, b := 34, 35

    Go 对于已声明但未使用的变量会在编译阶段报错,比如下面的代码就会产生一个错误:声明了 i 但未使用。

    package main
    
    func main() {
      var i int
    }

    常量


    所谓常量,也就是在程序编译阶段就确定下来的值,而程序在运行时无法改变该值。在 Go 程序中,常量可定义为数值、布尔值或字符串等类型。

    它的语法如下:

    const constantName = value
    // 如果需要,也可以明确指定常量的类型:
    const Pi float32 = 3.1415926

    下面是一些常量声明的例子:

    const Pi = 3.1415926
    const i = 10000
    const MaxThread = 10
    const prefix = "astaxie_"

    Go 常量和一般程序语言不同的是,可以指定相当多的小数位数 (例如 200 位),
    若指定給 float32 自动缩短为 32bit,指定给 float64 自动缩短为 64bit。

  • 相关阅读:
    SQL Server OPENQUERY使用
    VS2013程序打包报 ISEXP : error -****: An error occurred streaming
    IIS重新注册
    c#之反射(Reflection)
    c#之Lambda表达式
    c#之委托事件(DelegateEvent)
    c#之委托详解(Delegate)
    git将文件托管到github上遇到的问题
    c#之泛型详解(Generic)
    linux下操作memcache的操作命令
  • 原文地址:https://www.cnblogs.com/mxsf/p/12678416.html
Copyright © 2020-2023  润新知