我正在编写一个函数来删除字符串中的重复字符。这是我的方法。当我运行以下测试时,为什么会出现此错误?我是 Go 的新手,习惯了更动态的语言,比如 Ruby/Python。
panic: assignment to entry in nil map [recovered]
panic: assignment to entry in nil map
源码
func removeDuplicate(s string) string {
var m map[string]int
var c_string []string = strings.Split(s, "")
for i :=0; i < len(c_string); i++ {
m[c_string[i]] = 0
}
for i :=0; i < len(c_string); i++ {
m[c_string[i]] = m[c_string[i]] + 1
}
var (
result string = ""
)
for i :=0; i < len(c_string); i++ {
if m[c_string[i]] < 1 {
result = result + c_string[i]
}
}
return result
}
source_test.go
func TestRemoveDuplicateChars(t *testing.T) {
got := removeDuplicateChars("abbcde")
if got != "abcde" {
t.Fatalf("removeDuplicateChars fails")
}
}
ITMISS
相关分类