正如FUZxxl指出的那样,您的问题是分号的自动插入。规格说明:
当输入被分解为令牌时,如果该行的最终令牌为,则将分号自动插入到非空白行的末尾的令牌流中。
- 标识符
- 整数,浮点数,虚数,符文或字符串文字
- 关键字之一break,continue,fallthrough或return
- 运算符和定界符++,-,),]或}之一
您有一个函数调用,该函数的计数很重要,
)因此在行的末尾添加了分号。
要避免自动分号转换,您可以通过以下方式之一来编写呼叫:
使用
.代替分号:
x.Method(p1,p2,p3)
在参数列表的开头而不是函数之前中断:
x.Method( p1,p2,p3, // , at the end is important to prevent semicolon insertion)
如果您不喜欢上述方法,则可以(从go1.1开始)将这些方法视为一等公民,并临时创建可能更短的快捷方式:
f = x.Methodf(p1,p2,p3).f(p3,p4,p5)
对于这个例子,我还没有足够的思考。
f(...).f(...)当然不可能,因为
f没有成员的返回值
f。一个将不得不重新分配
f。因此,您从中一无所获。



