首页 > 其他 > 详细

Golang的Semicolons

时间:2016-09-07 14:22:05      阅读:254      评论:0      收藏:0      [点我收藏+]

Semicolons

The formal grammar uses semicolons ";" as terminators in a number of productions. Go programs may omit most of these semicolons using the following two rules:

  1. When the input is broken into tokens, a semicolon is automatically inserted into the token stream at the end of a non-blank line if the line‘s final token is

  2. To allow complex statements to occupy a single line, a semicolon may be omitted before a closing ")" or "}".

To reflect idiomatic use, code examples in this document elide semicolons using these rules.

说得很清楚:

Golang编译器自动在行尾插入分号(Semicolons):

    1. 关键字keywords

    2. 标识符identifiers

    3. 直接量Literals

    4. 某些运算符: ++, --, ), ], }

由于在初始化块{...}中使用逗号而不是分号, 所以在块内换行需要谨慎编译器会自动插入分号.

var files = []struct { Name, Body string }{ {"readme.txt", "This archive contains some text files."}, {"gopher.txt","Gopher names:\nGeorge\nGeoffrey\nGonzo"}, {"todo.txt", "Get animal handling license."}

}

编译时会报错, 原因是在最后一个元素后自动插入了分号, 解决办法:

    1. 在最后一个元素后也加逗号

var files = []struct { Name, Body string }{ {"readme.txt", "This archive contains some text files."}, {"gopher.txt","Gopher names:\nGeorge\nGeoffrey\nGonzo"}, {"todo.txt", "Get animal handling license."},

}

    2. 最后"}"不换行

var files = []struct {

Name, Body string }{ {"readme.txt", "This archive contains some text files."}, {"gopher.txt", "Gophernames:\nGeorge\nGeoffrey\nGonzo"}, {"todo.txt", "Get animal handling license."}}

Golang的Semicolons

原文:http://www.cnblogs.com/zolo/p/5849142.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!