Go语言变量声明与初始化

变量声明有多种形式,未初始化的标准格式如下所示。

var 变量名 变量类型定义一个变量名为 a 的 int 类型变量,示例代码如下:

var a int批量声明未初始化的变量,不需要每行都通过 var 关键字声明,具体语法格式如下所示。

var (
    a int
    b string
    c []float32
    d func() bool
    e struct{
        x int
        y string
    }
)未初始化变量的默认值有如下特点:

  • 整型和浮点型变量默认值为 0;
  • 字符串默认值为空字符串;
  • 布尔型默认值为 false;
  • 函数、指针变量、切片默认值为 nil。

初始化变量的标准格式如下所示:

var 变量名 变量类型 = 表达式初始化变量也可以省略变量类型,让编译器自动推断变量类型,如下所示:

var 变量名 = 表达式初始化变量的简短声明格式(短变量声明格式)如下所示:

变量名 := 表达式分别使用以上三种方式定义一个变量,并初始化为 10,示例代码如下:

var a int = 10      // 初始化变量的标准格式
var b = 10          // 初始化变量的编译器自动推断类型格式
var c := 10         // 初始化变量的简短声明格式使用:=赋值操作符可以高效地创建一个新的变量,称为初始化声明。声明语句省略了 var 关键字,变量类型将由编译器自动推断。这是声明变量的首选形式,但是它只能被用在函数体内,而不可以用于全局变量的声明与赋值。该变量名必须是没有定义过的变量,若定义过,将发生编译错误。

var a = 10
a := 20         // 重复定义变量 a编译报错如下:

no new variables on left side of :=多个短变量声明和赋值中,至少有一个新声明的变量出现在左侧,那么即便其他变量名可能是重复声明的,编译器也不会报错。情况如下所示。

var a = 10
a, b := 100, 200虽然这种方法不会报错,但是在使用过程中应尽量避免。

本文章引用自 http://www.weixueyuan.net/(因感觉收获甚多,特地收藏,如有侵权,联系作者,必删)

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注