gpt4 book ai didi

string - 如何在golang中读取 "\t"作为标签

转载 作者:行者123 更新时间:2023-12-01 22:07:57 24 4
gpt4 key购买 nike

我试图从 shell 中将 "\t" 解析为 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"

有没有简单的解决方案?

最佳答案

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

查看相关问题:

How to transform Go string literal code to its value?

Convert unicode code point to literal character in Go

关于string - 如何在golang中读取 "\t"作为标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59952721/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com