在Go中,如何编写多行语句?

Vie*_*ele 35 go

在python中,我们使用反斜杠来指示当前语句继续到下一行

例如,

a = b + c + s \
    + x + y
Run Code Online (Sandbox Code Playgroud)

或简单地说,

a = b + c + s +
    x + y
Run Code Online (Sandbox Code Playgroud)

用Go语言可以做到吗?谢谢

tux*_*21b 55

当然,只是在最后放一个操作员,例如:

a = b + c + s +
    x + y
Run Code Online (Sandbox Code Playgroud)

另请注意,在操作员面前不可能断线.以下代码无效:

a = b + c + s
    + x + y
Run Code Online (Sandbox Code Playgroud)

该规则在此处说明书中描述.


tyl*_*erl 10

有趣的是,Go语言规范本身在每个语句的末尾都需要分号,但是词法分析器会在编译前看起来像语句的行末尾插入隐式分号.

因此,为了防止在未完成的行结尾处出现不需要的分号,您需要做的就是确保该行不会以可能使其看起来像完整语句的方式结束.

换句话说,避免在变量,常量,函数,关键字或后缀运算符中结束不完整的行(例如++).

那会留下什么?好吧,我想到了一些事情 - 例如中缀操作符(例如=或者+),逗号,或者开口或支架或支架.

  • 不幸的是,它与 JavaScript 并不完全相同。JavaScript 不会在带括号的表达式中间插入分号。Go will,这使得包装好东西变得更加困难。 (2认同)