package mainimport ( "fmt" "os" "strings")func main() { arguments := os.Args words := strings.Split(arguments[1], "\n") fmt.Println(words) fmt.Println(words[0])}例子:go run main.go "hello\nthere"输出:[hello\nthere]hello\nthere预期的:[hello there]hello为什么"\n"需要对换行符的分隔符进行转义"\\n"以获得预期结果?因为如果像这样使用https://play.golang.org/p/UlRISkVa8_t,您不需要转义换行符
2 回答
慕运维8079593
TA贡献1876条经验 获得超5个赞
您假设 Go 将您的输入视为:
"hello\nthere"
但它确实将您的输入视为:
`hello\nthere`
因此,如果您希望将该输入识别为换行符,则需要取消引用它。但这是一个问题,因为它也没有引号。因此,您需要添加引号,然后将其删除,然后才能继续您的程序:
package main
import (
"fmt"
"strconv"
)
func unquote(s string) (string, error) {
return strconv.Unquote(`"` + s + `"`)
}
func main() {
s, err := unquote(`hello\nthere`)
if err != nil {
panic(err)
}
fmt.Println(s)
}
结果:
hello
there
- 2 回答
- 0 关注
- 109 浏览
添加回答
举报
0/150
提交
取消