我有一个很长的 func
声明,我想分成几行:
func LongMethodName(param1 *Type1, param2 *Type2, param3 *Type3) (param4 *Type1, param5 *Type2, param6 *Type3) {
...
return
}
这是非常难以管理的。
有没有这样写函数声明的方法?
func LongMethodName(param1 *Type1, param2 *Type2, param3 *Type3)
(param4 *Type1, param5 *Type2, param6 *Type3)
{
...
return
}
最佳答案
这是分号插入规则的结果:http://golang.org/ref/spec#Semicolons . Go 会自动在第一行的末尾插入一个分号:
func LongMethodName(param1 *Type1, param2 *Type2, param3 *Type3);
(param4 *Type1, param5 *Type2, param6 *Type3) {
带分号的第一行实际上是一个有效的go表达式:It's an external function。然后,它尝试解析第二行但失败了!
您可以通过将左括号保留在第一行来包装它:
func LongMethodName(param1 *Type1, param2 *Type2, param3 *Type3) (
param4 *Type1, param5 *Type2, param6 *Type3) {
}
或者在第一行保留一个逗号:
func LongMethodName(param1 *Type1, param2 *Type2,
param3 *Type3) (param4 *Type1, param5 *Type2, param6 *Type3) {
}
两者在 gofmt
中都有效。
关于go - 多行写长语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24581974/