似乎golang不支持其符文的所有unicode字符
package main
import "fmt"
func main() {
standardSuits := []rune{'??', '??', '??', '??'}
fmt.Println(standardSuits)
}
Run Code Online (Sandbox Code Playgroud)
生成以下错误:
./main.go:6: missing '
./main.go:6: invalid identifier character U+FE0F '?'
./main.go:6: syntax error: unexpected ?, expecting comma or }
./main.go:6: missing '
./main.go:6: invalid identifier character U+FE0F '?'
./main.go:6: missing '
./main.go:6: invalid identifier character U+FE0F '?'
./main.go:6: missing '
./main.go:6: invalid identifier character U+FE0F '?'
./main.go:6: missing '
./main.go:6: too many errors
Run Code Online (Sandbox Code Playgroud)
有没有办法绕过这个,或者我应该忍受这个限制并使用其他东西?
它看起来像一个解析问题.您可以使用unicode点生成符文,这应该与使用chars的结果相同.
package main
import "fmt"
func main() {
standardSuits := []rune{'\u2660', '\u2663', '\u2665', '\u2666', '?'}
fmt.Println(standardSuits)
}
Run Code Online (Sandbox Code Playgroud)
生成
[9824 9827 9829 9830 8984]
Run Code Online (Sandbox Code Playgroud)
游乐场链接:https://play.golang.org/p/jTLsbs7DM1
我添加了额外的第5个符文来检查代码点或字符的结果是否相同.看起来确实如此.
不确定你的字符有什么问题(没有在十六进制编辑器中查看它们,周围没有它们),但有些事情对它们很奇怪.
我还通过复制粘贴维基百科中的字符来运行:
package main
import "fmt"
func main() {
standardSuits := []rune{'?', '?', '?', '?'}
fmt.Println(standardSuits)
}
Run Code Online (Sandbox Code Playgroud)
https://play.golang.org/p/CKR0u2_IIB