在 Go 中 for 用来循环和迭代,Go 语言没有 while,do,until 这几个关键字,你只能使用 for。这也算是件好事!
让我们来为一个重复字符 5 次的函数编写测试。
目前这里没什么新知识,所以你可以自己尝试去写。
先写测试
packageiterationimport"testing"funcTestRepeat(t*testing.T){repeated:=Repeat("a")expected:="aaaaa"ifrepeated!=expected{t.Errorf("expected '%q' but got '%q'",expected,repeated)}}
尝试运行测试
./repeat_test.go:6:14: undefined: Repeat
先使用最少的代码来让失败的测试先跑起来
请遵守原则!你现在不需要学习任何新知识就可以让测试恰当地失败。
现在只需让代码可编译,这样你就可以检查测试用例能否通过。
现在你已经掌握了足够的 Go 知识来给一些基本的问题编写测试,这意味着你可以放心的处理生产环境的代码,并知道它的行为会如你所愿。
repeat_test.go:10: expected 'aaaaa' but got ''
把代码补充完整,使得它能够通过测试
就像大多数类 C 的语言一样,for 语法很不起眼。
与其它语言如 C,Java 或 JavaScript 不同,在 Go 中 for 语句前导条件部分并没有圆括号,而且大括号 { } 是必须的。你可能会好奇下面这行
我们目前都是使用 := 来声明和初始化变量。然后 := 只是两个步骤的简写。这里我们使用显式的版本来声明一个 string 类型的变量。我们还可以使用 var 来声明函数,稍后我们将看到这一点。