为什么 Go 语言只允许一种大括号放置风格?

栏目: IT技术 · 发布时间: 4年前

内容简介:代码清单 1-1 与 Go Playground 的初次见面:Go 对于大括号Go 之所以如此严格地限制大括号的放置风格,跟这门语言刚刚诞生时发生的一些事情有关。 在早期,使用 Go 编写的代码总是无一幸免地带有分号,它们就像迷路的小狗一样跟在每条单独的语句后面,比如这样:

Note

本文摘录自《Go语言趣学指南》第 1 章, 请访问 gpwgcn.com 以获取更多相关信息。

为什么  <a href='https://www.codercto.com/topics/6127.html'>Go</a>  语言只允许一种大括号放置风格?

代码清单 1-1 与 Go Playground 的初次见面: playground.go

package main                            // 声明本代码所属的包

import (
    "fmt"                               // 导入 fmt 包,使其可用(fmt是format的缩写)
)

func main() {                           // 声明一个名为 main 的函数
    fmt.Println("Hello, playground")    // 在屏幕上打印出“Hello, playground”
}
为什么 Go 语言只允许一种大括号放置风格?

Go 对于大括号 {} 的摆放位置非常挑剔。 在代码清单 1-1 中,左大括号 {func 关键字位于同一行,而右大括号 } 则独占一行。 这是 Go 语言 唯一允许的大括号放置风格 ,除此之外的其他风格都是不被允许的。 作为参考, mng.bz/NdE2 展示了各种不同的大括号放置风格。

Go 之所以如此严格地限制大括号的放置风格,跟这门语言刚刚诞生时发生的一些事情有关。 在早期,使用 Go 编写的代码总是无一幸免地带有分号,它们就像迷路的小狗一样跟在每条单独的语句后面,比如这样:

fmt.Println("Hello, fire hydrant");

到了 2009 年 12 月,一群忍者 gopher 决定把分号从语言中驱逐出去。 好吧,这么说也不太准确。 实际上,Go 编译器将为你代劳,自动地插入那些可爱的分号。 这种机制运行得非常完美,但它的代价就是要求用户必须遵守上面提到的 唯一无二的大括号放置风格

如果用户尝试将左大括号和 func 关键字放在不同的行里面,那么 Go 将报告一个语法错误:

func main()      // 函数体缺失
{                // 语法错误:在 { 之前发现了意料之外的分号或新行
}

出现这个问题并不是编译器有意刁难,这纯粹是由于分号被插入到了错误的位置,导致编译器犯了点小迷糊,最终才不得不求助于你。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

伟大创意的诞生

伟大创意的诞生

史蒂文·约翰逊 (Steven Johnson) / 盛杨燕 / 浙江人民出版社 / 2014-8-1 / CNY 52.90

 大家都认得出好创意。印刷机、铅笔、抽水马桶、电池、互联网、GPS、Google——这些都是绝妙的创意。然而,它们是如何产生的?被喻为“科技界的达尔文”的作者,在《伟大创意的诞生》一书中,提供了深具启示意义以及有论证实据的答案。  作者史蒂文•约翰逊以富有感染力、包罗万象的风格游历于多重领域,从神经生物学、都市研究,到网络文化,找出了独特创新背后的7大关键模式,深入人类600年重要发明的......一起来看看 《伟大创意的诞生》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换