我想以这种方式链接命令:var cmdGroups = []*commands.CmdGroup { commands.MakeCmdGroup("foo", cmd1, cmd2, cmd3).AddConstraint(cmd1, cmd2).AddConstraint(cmd2, cmd1, cmd3), commands.MakeCmdGroup("bar", cmd1, cmd4).AddConstraint(cmd1, cmd4),}出于 80 列长度的原因,我想将我的链分成几行,但是 Go 不允许我编译这个:var cmdGroups = []*commands.CmdGroup { commands.MakeCmdGroup("foo", cmd1, cmd2, cmd3) .AddConstraint(cmd1, cmd2) .AddConstraint(cmd2, cmd1, cmd3), commands.MakeCmdGroup("bar", cmd1, cmd4) .AddConstraint(cmd1, cmd4),}我能做什么 ?
2 回答

手掌心
TA贡献1942条经验 获得超3个赞
我可能会写一些变体:
var cmdGroups = []*commands.CmdGroup{
commands.MakeCmdGroup(
"foo", cmd1, cmd2, cmd3,
).AddConstraint(
cmd1, cmd2,
).AddConstraint(
cmd2, cmd1, cmd3,
),
commands.MakeCmdGroup(
"bar", cmd1, cmd4,
).AddConstraint(cmd1, cmd4),
}
但是,在惯用代码中不会经常看到如此长的选择器运算符链。(我认为标准库是惯用代码的非正式指南)。也许此代码设计/结构可能存在一些弱点。
- 2 回答
- 0 关注
- 225 浏览
添加回答
举报
0/150
提交
取消