登录
首页 >  Golang >  Go问答

无论如何要在 Go 中创建以空字符结尾的字符串吗?

来源:Golang技术栈

时间:2023-04-28 07:02:56 383浏览 收藏

本篇文章主要是结合我之前面试的各种经历和实战开发中遇到的问题解决经验整理的,希望这篇《无论如何要在 Go 中创建以空字符结尾的字符串吗?》对你有很大帮助!欢迎收藏,分享给更多的需要的朋友学习~

问题内容

无论如何要string在 Go 中创建 null 终止?

我目前正在尝试的是a:="golang\0",但它显示编译错误:

non-octal character in escape sequence: "

正确答案

规范:字符串文字:

引号之间的文本形成文字的值,反斜杠转义解释为符文文字(除了\'非法和\"合法之外),具有相同的限制。三位八进制 ( \nnn) 和两位十六进制 ( \xnn) 转义表示结果字符串的各个字节;所有其他转义表示单个字符的(可能是多字节)UTF-8 编码。

\0非法序列也是如此,您必须使用 3 个八进制数字:

s := "golang\000"

或使用十六进制代码(2 个十六进制数字):

s := "golang\x00"

或一个 unicode 序列(4 个十六进制数字):

s := "golang\u0000"

例子:

s := "golang\000"
fmt.Println([]byte(s))
s = "golang\x00"
fmt.Println([]byte(s))
s = "golang\u0000"
fmt.Println([]byte(s))

输出:全部以 0-code 字节结尾(在Go Playground上试试)。

[103 111 108 97 110 103 0]
[103 111 108 97 110 103 0]
[103 111 108 97 110 103 0]

今天带大家了解了golang的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>