[Go] 复合类型(数组、切片、字典、结构体)变量的 初始化 及 注意事项

Go变量 初始化

复合类型(数组、切片、字典、结构体)变量的初始化是,有一些语法限制:

1、初始化表达式必须包含类型标签

2、左花括号必须在类型尾部,不能另起一行;

3、多个成员初始值以逗号分隔;

4、允许多行,但每行须以逗号 或 右花括号结束;

正确示例:

type data struct {
    x    int
    s    string
}

var a data = data{1, "abc"}

b := data{
    1,
    "abc",
}

c := []int{
    1,
    2}

d := []int{1, 2,
    3, 4,
    5,
}

错误示例:

var d data = {1, "abc"} // 语法错误:unexpected { (缺类型标签)

d := data
    {            // 语法错误:unexpected semicolon or newline(左花括号不能另起一行)
        1,
        "abc"
    }
d := data{
    1,
    "abc"        // 语法错误:need trailing comma before newline(须以逗号 或 右花括号结束)
}
原文地址:https://www.cnblogs.com/52php/p/6062043.html