一个简单的程序,用于一个目的:
逐行读取脚本文件,创建字符串,同时忽略任何空白的新行或注释(包括 shebang)。如果需要,在行尾添加“;”。(我知道,我知道,反斜杠和 & 符号等)
我的问题是:
如何提高这个小程序的性能?在另一个答案中,我读到过利用而不是,但这似乎不可行,因为字符串是我想要的。scanner.Bytes()
scanner.Text()
包含测试文件的示例代码:https://play.golang.org/p/gzSTLkP3BoB
这是一个简单的程序:
func main() {
file, err := os.Open("./script.sh")
if err != nil {
log.Fatalln(err)
}
defer file.Close()
var a strings.Builder
scanner := bufio.NewScanner(file)
for scanner.Scan() {
lines := scanner.Text()
switch {
case lines == "" || lines[:1] == "#":
continue
case lines[len(lines)-1:] != ";":
a.WriteString(lines + "; ")
default:
a.WriteString(lines + " ")
}
}
fmt.Println(a.String())
}
HUX布斯
回首忆惘然
守候你守候我
相关分类