Go1.18 新特性中有一个神器:Fuzzing,对于发现 Go 项目中的 Bug 很有帮助。我们一起来看看:
以下这个函数,你能找到几个 bug?它的功能看起来很简单——对于一个字符串,用一个新的用户定义字符覆盖它的第一个字符 n 次。例如,如果我们运行OverwriteString(“Hello, World!”, “A”, 5),正确的输出是:“AAAAA, World!”。
// overwrite_string.go
// OverwriteString overwrites the first 'n' characters in a string with
// the rune 'value'
func OverwriteString(str string, value rune, n int) string