Frequently Asked Questions:?:操作符,标准包,单元测试怎么写

253 阅读2分钟

这是我参与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…