猿问

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

我正在学习 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 string

prog.go:9: empty character literal or unescaped ' in character literal

prog.go:9: missing '

我无法理解这背后的确切原因,例如在 Python 中,Perl 可以用单引号和双引号声明一个字符串。


猛跑小猪
浏览 300回答 3
3回答

喵喵时光机

在 Go 中,'⌘'表示单个字符(称为 Rune),而"⌘"表示包含字符 的字符串⌘。在字符串和字符之间的差异很明显的许多编程语言中都是如此,例如 C++。查看Go 字符串博客中的“代码点、字符和符文”部分

ITMISS

另一种选择,如果您想嵌入双引号:package mainfunc main() {   s := `west "north" east`   println(s)}https://golang.org/ref/spec#raw_string_lit

红颜莎娜

Go 是一种静态类型语言。另外GO是不是一种脚本语言。虽然我们看到GO它像脚本语言一样运行,但它正在编译我们编写的源代码,然后执行 main 函数。因此,与 Python 或 JavaScript 等脚本语言不同,我们应该将其GO视为使用C, JAVA, C++单引号''来声明字符 ( rune, char) 的地方。我认为由于这是一种新语言,而当前的趋势是脚本语言,因此出现了这种混乱。
随时随地看视频慕课网APP

相关分类

Go
我要回答