正如标题所说,我正在尝试解析文件但忽略注释(以#
开头)或空行。我试图为此制作一个系统,但似乎总是忽略它应该忽略注释和/或空行。
lines := strings.Split(d, "\n")
var output map[string]bool = make(map[string]bool)
for _, line := range lines {
if strings.HasPrefix(line, "#") != true {
output[line] = true
} else if len(line) > 0 {
output[line] = true
}
}
运行时(这是函数的一部分),它输出以下
This is the input ('d' variable):
Minecraft
Zerg Rush
Pokemon
# Hello
This is the output when printed ('output' variable):
map[Minecraft:true Zerg Rush:true Pokemon:true :true # Hello:true]
我的问题是它仍然保留“”和“#Hello”值,这意味着某些事情失败了,这是我无法弄清楚的。
那么,我做错了什么才能保持不正确的价值呢?
答案 0 :(得分:2)
len(line) > 0
行, "# Hello"
将为true,因此会将其添加到output
。
目前,您添加的行不是以或开头的非空行。您只需添加满足两个条件的行:
if !strings.HasPrefix(line, "#") && len(line) > 0 {
output[line] = true
}