首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GoLang gofmt命令

GoLang gofmt命令
EN

Stack Overflow用户
提问于 2016-07-22 14:53:46
回答 3查看 2K关注 0票数 1

gofmt命令不会格式化花括号({})。

代码:

代码语言:javascript
复制
package main

import "fmt"

func main() 
{
    fmt.Printf("Hello, world\n")
}

gofmt hello.go的输出

hello.go:6:1:需要声明,找到'{‘退出状态2

如果我把空格放在任何地方,它就会正确地格式化它。gofmt goes不格式化大括号吗?

EN

回答 3

Stack Overflow用户

发布于 2016-07-22 14:59:41

您必须将大括号放在函数声明的同一行中,否则您的代码将因此语法错误而无法编译

为什么有大括号而没有分号?为什么我不能把大括号放在下一行呢?

Go使用大括号对语句进行分组,这是使用过C系列中任何语言的程序员都熟悉的语法。然而,分号是给解析器用的,而不是给人用的,我们希望尽可能地消除它们。为了实现这一目标,Go借鉴了BCPL的一个技巧:在形式语法中,分隔语句的分号是自动注入的,而不需要提前查看,由lexer在任何可能是语句末尾的行尾注入。这在实践中工作得很好,但它的效果是强制使用大括号样式。例如,函数的左大括号不能单独出现在一行上。

https://golang.org/doc/faq#semicolons

票数 6
EN

Stack Overflow用户

发布于 2016-07-22 15:02:32

您的代码有语法错误:将左花括号放在与函数声明相同的一行中。

程序片段必须是语法上有效的才能使用

看:https://golang.org/cmd/gofmt/上面写着:

当gofmt从标准输入读取时,它接受完整的Go程序或程序片段。程序片段必须是语法有效的声明列表、语句列表或表达式。在格式化这样的片段时,gofmt保留了前导缩进以及前导空格和尾随空格,这样Go程序的各个部分就可以通过管道传输到gofmt.

来格式化。

票数 3
EN

Stack Overflow用户

发布于 2016-07-23 10:56:02

把左大括号和函数声明放在同一行也许你应该在编辑器中添加gofmt,这样可以避免代码格式的问题

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38520011

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档