Go语言之旅

引言

Go语言并发效能极高,但也有自己的规范需要学习。

两条Go规则

Go具有严格的编码规则,可帮助您避免愚蠢的错误和错误代码,以及使您的代码在Go社区中更易于阅读。 这里就会介绍两个必须知道的Go规则。

引用即使用

请记住,Go编译器在这里提供帮助,不会让您的生活痛苦不堪。 因此,Go编译器的主要目的是编译并提高Go代码的质量。 您要么使用Go软件包,要么不包含它 Go对软件包使用有严格的规定。因此,您不能只包含您可能认为需要的任何程序包,而后不使用它。 您将在之后了解更多的有关内容。 查看以下朴素程序,该程序另存为

Notused.go: 
package main

import (
   "fmt"
   "time"
)
func main() {
   fmt.Println("Hello there!")
}

在本书中,您将看到很多错误消息,错误情况和警告。 我认为,检查无法编译的代码很有用,有时甚至比仅仅查看没有任何错误的Go代码更有价值。 Go编译器通常显示有用的错误消息和警告,很可能会帮助您解决错误的情况,因此请不要低估这些错误消息和警告。
如果执行Notused.go,则会从Go中获得下一条错误消息,并且该程序将不会执行:

# command-line-arguments
.\NotUsed.go:5:2: imported and not used: "time"

如果您从程序的导入列表中删除os软件包,则NotUsed.go编译没问题-你可以自己试试。尽管现在不是开始讨违背Go规则的最佳时机,但是有一种方法可以 绕开此限制,方法如下在保存在NotUsedFix.go文件中的下一个Go代码清单中:

 Package main 
import 
( “ fmt” 
_ “time” )
 func main()
{ fmt.Println(“Hello World!”)
 } 

即使在程序中未使用该软件包,
在导入列表中的软件包名称前面使用下划线字符也不会在编译过程中产生错误消息:

Go run NotUseFix.Go

谨慎使用花括号

接下来我们将测试名为brace.go的Go程序:

package main

import (
   "fmt"
)

func main()
{
   fmt.Println("谨慎使用花括号!")
}

这段代码 尽管看起来没问题 ,但是如果您尝试执行它,将会出错,

将收到以下语法错误消息,并且该代码将无法编译,无法运行:

>go run brace.go
# command-line-arguments
.\brace.go:7:6: missing function body
.\brace.go:8:1: syntax error: unexpected semicolon or newline before {

此错误信息的官方解释是,
在Go设计的时候,它的编译器已经被设计程在许多情况下都使用分号作为语句终止符,并且编译器在必要时会自动插入所需的分号,比如说上面的func main()后面。
因此,将大括号({)放在下一行中将使Go编译器在前一行(func main())的末尾插入分号,这会产生错误消息。
将({)提前后:

package main

import (
   "fmt"
)

func main() {
   fmt.Println("谨慎使用花括号!")
}

此时,go run brace.go会输出
谨慎使用花括号。

附录

代码可以在公众号回复“Go代码1“”获得

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值