如何在 golang 中将“\t”读为选项卡

我试图"\t"从 shell 解析为TAB,但是,它不起作用。


这里我举一个简单的例子。


package main


import (

    "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"

有简单的解决方案吗?


拉莫斯之舞
浏览 194回答 1
1回答

慕容3067478

\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"
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go