为了账号安全,请及时绑定邮箱和手机立即绑定

无法在 golang 中用单引号分配字符串

无法在 golang 中用单引号分配字符串

Go
猛跑小猪 2021-12-06 19:54:00
我正在学习 go,在玩字符串时,我注意到如果字符串是单引号,那么 golang 会给我一个错误,但双引号工作正常。func main() {    var a string    a = 'hello' //will give error    a = "hello" //will not give error}这是我在系统上遇到的错误:illegal rune literal当我尝试在操场上做同样的事情时,我收到了这个错误:prog.go:9: missing 'prog.go:9: syntax error: unexpected name, expecting semicolon or newline or }prog.go:9: newline in stringprog.go:9: empty character literal or unescaped ' in character literalprog.go:9: missing '我无法理解这背后的确切原因,例如在 Python 中,Perl 可以用单引号和双引号声明一个字符串。
查看完整描述

3 回答

?
喵喵时光机

TA贡献1846条经验 获得超7个赞

在 Go 中,'⌘'表示单个字符(称为 Rune),而"⌘"表示包含字符 的字符串

在字符串和字符之间的差异很明显的许多编程语言中都是如此,例如 C++。

查看Go 字符串博客中的“代码点、字符和符文”部分


查看完整回答
反对 回复 2021-12-06
?
ITMISS

TA贡献1871条经验 获得超8个赞

另一种选择,如果您想嵌入双引号:


package main


func main() {

   s := `west "north" east`

   println(s)

}

https://golang.org/ref/spec#raw_string_lit


查看完整回答
反对 回复 2021-12-06
?
红颜莎娜

TA贡献1842条经验 获得超12个赞

Go 是一种静态类型语言。另外GO是不是一种脚本语言。虽然我们看到GO它像脚本语言一样运行,但它正在编译我们编写的源代码,然后执行 main 函数。因此,与 Python 或 JavaScript 等脚本语言不同,我们应该将其GO视为使用C, JAVA, C++单引号''来声明字符 ( rune, char) 的地方。

我认为由于这是一种新语言,而当前的趋势是脚本语言,因此出现了这种混乱。


查看完整回答
反对 回复 2021-12-06
  • 3 回答
  • 0 关注
  • 299 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信