这是我参与11月更文挑战的第1天,活动详情查看:2021最后一次更文挑战
Go没有?:操作符?
Go语言中是没有三元运算符的。你可以用下面的例子实现相同效果:
if expr {
n = trueVal
} else {
n = falseVal
}
Go没有?:运算符的原因 是因为设计者看过非常多的写的很复杂而时常运行失败的表达式。if-else这种形式,虽然写的代码更长,但是毫无疑问的更加整洁。一个语言应该只有一种条件控制结构。
为什么标准包中没有X?
标准库的目的是支持runtime,连接操作系统,并提供许多GO程序所需的关键功能,例如格式化I / O和网络连接。它还包含了Web编程的重要元素,包括加密、支持HTTP,JSON和XML等标准。
因为很长一段时间m没有明确的标准定义什么应该在标准包中,所以Go的标准库中全是Go库。然而,今天有了标准。
标准库中包含的代码,往往需要耗费大量的持续维护成本(通常由原始作者以外的人承担)
大多数新代码应该建立在标准库之外,并能够通过Go Tool的Go Get命令访问。此类代码可以具有自己的维护者,发布周期和兼容性保证。用户可以在Godoc.org找到包,并阅读他们的文档。
虽然标准库中,有一些其实并不是真正是标准库的包,例如log / syslog,但我们因为兼容性我们继续保留它们。总而言之,我们鼓励大多数新的代码建立在其他地方。
criteria 标准
我该怎么写测试单元?
在你文件的相同目录下,创建一个_test.go结尾的文件,在该文件中,写上import "testing"并且按以下形式组织代码。
func TestFoo(t *testing.T) {
...
}
执行go test在该目录下。该命令会找到所有test方法,构建二进制文件,并且执行。查看这篇文章获取更多的细节golang.org/doc/code.ht…。