我正在学习去和玩字符串时我注意到如果一个字符串是单引号,那么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可以声明一个包含单引号和双引号的字符串.
在Go中,'?'
表示单个字符(称为符文),而"?"
表示包含该字符的字符串?
.
在许多编程语言中都是如此,其中字符串和字符之间的区别是显着的,例如C++.
查看字符串Go Blog中的"代码点,字符和符文"部分