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

  • 初始化表达式必须含类型标签。
  • 左花括号必须在类型尾部,不能另起一行。
  • 多个成员初始值以逗号分隔。
  • 允许多行,但每行须以逗号或右花括号结束。
type data struct{ 
   x int
   s string
}
 
var d data = {1, "abc"}  // 语法错误:unexpected{ (缺类型标签) 
  
d := data
    {          // 语法错误:unexpected semicolon or newline(左花括号不能另起一行) 
       1, 
       "abc" 
    } 
  
d := data{ 
	1, 
	"abc" // 语法错误:need trailing comma before newline(须以逗号或右花括号结束) 
}