我试图"\t"从 shell 解析为TAB,但是,它不起作用。这里我举一个简单的例子。package mainimport ( "flag" "fmt")func main() { var sep string flag.StringVar(&sep, "sep", " ", "separator") flag.Parse() fmt.Println("name" + sep + "xxx") // separator is quoted by golang fmt.Printf("%q\n", sep)}结果:$ go run main.go -sep '\t'name\txxx"\\t"有简单的解决方案吗?
1 回答
慕容3067478
TA贡献1773条经验 获得超3个赞
\t是一个反斜杠转义,表示制表符(例如在解释的字符串文字中)。如果您有反斜杠转义,您可以使用strconv.Unquote()它来“解码”它(进入制表符)。
你必须知道的一件事:strconv.Unquote()要求它的参数用引号引起来,例如你必须"\t"不简单地传递\t.
sep, err := strconv.Unquote(`"` + sep + `"`)
if err != nil {
panic(err)
}
加上这个,运行go run main.go -sep '\t',输出是:
name xxx
"\t"
- 1 回答
- 0 关注
- 189 浏览
添加回答
举报
0/150
提交
取消