没什么特别的,那两行是相同的。
但是,例如,当您要在
if语句中使用它时,将需要使用括号,否则会出现编译时错误:
if i := Item{3, "a"}; i.Id == 3 {}结果是:
预期的布尔表达式,找到简单的语句(是否在合成文字周围缺少括号?)(以及另外1个错误)
这是因为产生了解析歧义:左花括号是复合文字或
if语句主体的一部分并不清楚。
使用括号将使其对于编译器而言是明确的,因此可以这样做:
if i := (Item{3, "a"}); i.Id == 3 {}有关详细信息,请参见:在for循环初始化程序中构造



