Go代码断行规则
1.分号插入规则
自动插入分号的规则是什么呢?Go白皮书是这样描述的:
1.在Go代码中,注释除外,如果一个代码行的最后一个语法词段(token)为下列所示之一,则一个分号将自动插入在此字段后(即行尾):
- 一个标识符;
- 一个整数、浮点数、虚部、码点或者字符串字面量表示形式;
- 这几个跳转关键字之一:
break
、continue
、fallthrough
和return
;- 自增运算符
++
或者自减运算符--
;- 一个右括号:
)
、]
或}
。2.为了允许一条复杂语句完全显示在一个代码行中,分号可能被插入在一个右小括号
)
或者右大括号}
之前。
第二条规则允许我们写出如下的代码:
import (_ "math";"fmt")
var (a int; b string)
const (M = iota;N)
type (MyInt int;T struct{
x bool;y int32})
type I interface{
m1(int); m2() string}
func f() {
fmt,Println("a");panic(nil)}
编译器在编译时刻将自动插入所需的分号,如下所示:
var (a int; b string;);
const (M = iota; N;);
type (MyInt int;T struct{
x bool;y int32;};);
type I interface