为什么 Golang 强制大括号不在下一行?

2024-01-22

correct:

if(true) {

}

不正确:

if(true)
{

}

为什么要强制执行这种样式,它与语言规范有关,还是只是因为他们更喜欢一种样式而不是另一种样式?


为什么有大括号但没有分号?为什么我不能将左大括号放在下一行?

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 Golang 强制大括号不在下一行? 的相关文章

  • GAE Go — 如何对不存在的实体键使用 GetMulti?

    我发现自己需要做一个GetMulti使用键数组进行操作 其中某些实体存在 但有些实体不存在 我当前的代码 如下 返回错误 datastore no such entity err datastore GetMulti c keys info
  • 如何在运行“go test”时排除或跳过特定目录[重复]

    这个问题在这里已经有答案了 go test go list grep v vendor coverprofile testCoverage txt 我正在使用上述命令来测试文件 但有 1 个名为 Store 的文件夹我想从测试中排除 怎样才
  • 展平嵌套结构会导致切片的切片

    所以我有一个像这样的结构 type Bus struct Number string Name string DirectStations Station Station is another struct ReverseStations
  • 我怎么知道我的所有 goroutine 确实正在使用 golang 的同步包等待一个条件

    我有一个应用程序 我正在创建多个 goroutine 来同时执行某个任务 所有工作协程都会等待条件 事件发生 一旦事件被触发 它们就会开始执行 创建完所有goroutines后 主线程在发送广播信号之前应该知道所有goroutines确实处
  • 可选回调的 JavaScript 样式

    我有一些函数偶尔 并非总是 会收到回调并运行它 检查回调是否已定义 函数是一种好的风格还是有更好的方法 Example function save callback do stuff if typeof callback undefined
  • 使用 HTTPS GRC 从 AWS Codecommit 获取私有存储库

    我正在尝试导入位于 AWS codecommit 中的模块 为了克隆存储库 我使用 HTTPS GRC Git 远程代码提交 方法 该方法使用 Google Suite 凭证来访问 AWS 控制台 我用来克隆存储库的命令是 git clon
  • 模板中的 bson.ObjectId

    我有一个具有 bson ObjectId 类型的结构 例如如下所示 type Test struct Id bson ObjectId Name string Foo string 我想在 html 模板中呈现它 Name Food a h
  • 如何在 Go 中将环境变量传递给测试用例

    在为 Go 编写测试用例时 传递需要提供给测试的环境变量的标准方法是什么 例如 我们不想在测试用例的源代码中嵌入密码 处理这个问题最标准的方法是什么 我们让测试用例寻找配置文件吗 还有别的事吗 看来我偶然发现了答案 将其添加到测试用例中可以
  • 解组转义 XML

    在 Go 中 我将如何解码此 XML 响应 我尝试过建立一个自定义UnMarshal方法在我的Answerstruct 但我运气不太好
  • 为什么 Go 禁止取 (&) 映射成员的地址,却允许取 (&) 切片元素?

    Go 不允许获取地图成员的地址 if I do this p mm abc Syntax Error cannot take the address of mm abc 理由是 如果 Go 允许使用此地址 那么当地图后台存储增长或缩小时 该
  • 这两种方式哪一种是惯用的方式? time.Sleep() 还是自动收报机?

    我必须每分钟执行一些语句 我不确定我应该遵循以下哪一项 如果有人能解释内存和 CPU 方面的优缺点 那就太好了 时间 Sleep func main go func for time Sleep time Minute fmt Printl
  • 如何让 Win32 使用 Windows XP 样式字体

    我正在使用纯 C 和 WinAPI 编写 Win32 应用程序 不允许使用 MFC 或 C 为了让控件使用适当的样式进行绘制 我使用了清单 如相应的 MSDN 文章中所述 一切都很好 当我更改系统样式时 我的应用程序也会更改样式 但使用的字
  • Objective-C 中是否有命名初始化方法的约定?

    在可以通过不同的 init 方法初始化的 Objective C 类中 将所有初始化程序共用的初始化代码收集到一个从其他 init 方法 有时也从从 Nib 唤醒 是否有关于如何命名该方法的约定 初始化器 初始化公共 根据 Apple 的说
  • 如何将 Unicode 字符转换为简单形式? [复制]

    这个问题在这里已经有答案了 有没有一个Go库可以Sj str m作为输入和返回Sjostrom作为输出 您可以使用golang org x text unicode norm来处理这个问题 package main import fmt i
  • 有队列实现吗?

    任何人都可以建议使用 Go 容器来实现简单快速的 FIF 队列 Go 有 3 种不同的容器 heap list and vector 哪一种更适合实现队列 事实上 如果您想要的是一个基本且易于使用的 fifo 队列 slice 可以满足您所
  • Golang中按长度分割字符串

    有谁知道如何在 Golang 中按长度分割字符串 例如 每 3 个字符分割 helloworld 那么理想情况下它应该返回一个 hel low orl d 数组 或者 一个可能的解决方案是在每 3 个字符后附加一个换行符 所有的想法都非常感
  • os.Mkdir 和 os.MkdirAll 权限

    我正在尝试在程序开始时创建一个日志文件 我需要检查是否 log如果不创建目录 则目录存在 然后继续创建日志文件 好吧 我尝试使用os Mkdir 也os MkdirAll 但无论我在第二个参数中输入什么值 我都会得到一个没有权限的锁定文件夹
  • 如何关闭 gorm 1.20.0 中的数据库实例

    由于我没有在 Close 函数中找到 gorm 实例 任何帮助将不胜感激 dbURI fmt Sprintf user s password s dbname s port s sslmode s TimeZone s username p
  • 在 Go to 函数中通过引用和值传递

    我对 Go 中通过引用和值传递有点困惑 我已经看到过对类型前面的 的解释 在类型名称前面 表示声明的变量将存储该类型的另一个变量的地址 而不是该类型的值 类型 这对我来说毫无意义 在Java中 如果我将数据库实例传递给函数 我会这样做 da
  • 错误:标准包中非标准导入“gopkg.in/yaml.v2”

    我正在尝试从以下位置导入 go yamlhttps github com go yaml yaml https github com go yaml yaml 并且我发现了一个 Google 没有提供帮助的错误 I ran go get g

随机推荐

  • 如何在 CentOS 上安装 PySide?

    我想在 CentOS 上安装 ReText 有一个问题 root localhost scripts 2 6 python retext py Traceback most recent call last File retext py l
  • posix线程阻塞信号和解除阻塞

    有没有办法阻止同一组中的某些信号并取消阻止其他信号 我似乎就是不明白这个问题 一个例子 sigset t set sigemptyset set sigaddset set SIGUSR1 Block signal SIGUSR1 in t
  • @DataJpaTest 忽略 `spring.datasource.url` 配置。怎么修?

    我遇到了问题 DataJpaTest 因为由于缺少架构而无法创建表 1 所以我想 我可以通过在连接字符串中创建模式来欺骗 spring 如下所示 应用程序属性 spring datasource url jdbc h2 mem SCH MO
  • 如果行(特定字段)匹配,则 awk 列的平均部分

    这是我的输入文件的示例 cat NDVI bm P01 031 RAW 0 516 0 0 P01 021 RAW 0 449 0 0 P02 045 RAW 0 418 0 0 P03 062 RAW 0 570 0 0 P03 064
  • 使用上下文管理器时对象变为 None

    为什么这不起作用 class X var1 1 def enter self pass def exit self type value traceback pass with X as z print z var1 I get print
  • Safari html5 视频 mp4 无法在 htaccess 文件夹中播放,[重复]

    这个问题在这里已经有答案了 我只是在一个包含一些视频的私人页面上工作 这些视频只能通过 htaccess 访问 所有视频均采用 html5 编码 并且该网站在没有 htaccess 文件的情况下适用于每个浏览器 将 htaccess 文件放
  • 如果有特定类,则将类添加到父 div

    尝试将类添加到父 div div class widget content if widget content li a有特定的类别 ifthis HTML div class widget content ul li a href htt
  • 使用@fontface字体加载斜体

    我有像这样的CSS font face font family alegreya src url fonts AlegreyaBold ttf font weight normal font style normal font face f
  • 为什么我要在 NHibernate 会话之上使用工作单元模式?

    我什么时候会在 NHibernate 已经提供的内容之上编写一个 UoW 实现 有现实世界的例子吗 您所描述的工作单元已经由 NHibernate 提供 因此没有理由执行这样的工作单元 我们在 WCF 服务中拥有的是更高级别的工作单元 其中
  • 在 Primefaces 4 中显示格式化的十进制数字 [重复]

    这个问题在这里已经有答案了 我有一个带有浮点字段的数据库表 我想通过 Primefaces 显示它 我想显示格式为 例如一千 的数字 1 000 00 我试过
  • 如何针对使用 matplotlib 的代码编写单元测试?

    我正在开发一个 python 2 7 程序 它生成许多不同的 matplotlib 图形 数据不是随机的 我愿意实施一些测试 使用单元测试 以确保生成的数字是正确的 例如 我将预期的图形 数据或图像 存储在某个地方 运行我的函数并将结果与
  • 如何控制库类的 Jackson 序列化

    我有一堂课 让我们称之为Piece 包含类型的成员com jme3 math ColorRGBA 使用默认的 Jackson 序列化 成员不仅被序列化为其成员r g b and a 但也使用像这样的吸气剂getAlpha 由于这显然是多余的
  • 切换多个 case 语句

    有人可以建议我如何替换下面的代码吗 如何重写代码以避免块的重复case 3 code block A break switch i case 1 code block A break case 2 code block b break ca
  • 如何避免执行更新的更新触发器中的递归?

    我需要使用触发器更新记录中货物的 vat total sum 但是触发触发器来更新记录并陷入递归 我怎样才能避免这种情况 代码 CREATE OR REPLACE FUNCTION vat total sum RETURNS TRIGGER
  • 将字符串数组发送到 Web API 方法

    这是我的客户端 ajax 调用 var list a b c d var jsonText data list ajax type POST url api scheduledItemPriceStatus updateStatusToDe
  • gprof 没有输出

    我正在尝试使用 gprof 来分析我正在开发的一些数字代码 但 gprof 似乎无法从我的程序中收集数据 这是我的命令行 g Wall O3 g pg o fftw test fftw test cpp lfftw3 lfftw3 thre
  • 蓝牙适配器不会停止扫描 BLE 设备

    在我的应用程序中 我有开始和停止按钮 当用户按下开始时 我调用 startScan 方法 bluetoothAdapter getBluetoothLeScanner startScan getLeScanCallback 当用户按停止时
  • 如何循环遍历数据库的表?

    我试图使用以下代码循环数据库的表 但出现错误java lang UnsupportedOperationException 我什至尝试过cfloop query and other attributes出现错误复杂值无法转换为简单值 谁能告
  • Lua 无法计算 math.abs(29.7 - 30) <= 0.3 [重复]

    这个问题在这里已经有答案了 今天早上我在我的 Lua 脚本中发现了一个错误 这看起来很奇怪 这次评估怎么会失败呢 示例可以在以下位置进行测试here http www lua org cgi bin demo 第一个例子 if math a
  • 为什么 Golang 强制大括号不在下一行?

    correct if true 不正确 if true 为什么要强制执行这种样式 它与语言规范有关 还是只是因为他们更喜欢一种样式而不是另一种样式 为什么有大括号但没有分号 为什么我不能将左大括号放在下一行 Go 使用大括号进行语句分组 这