Go运行报invalid character literal多字符字面量错误如何解决
错误原因
报错./prog.go:41:11: invalid character literal (more than one character)是因为Go对单引号、双引号的使用有严格的语法约束:
- 单引号
'仅能用来包裹单个Unicode字符(即rune类型字面量),内部如果出现多于1个字符,就会触发该类编译错误 - 双引号
"才是包裹多字符字符串的标准语法
你代码中color = 'Fair'这一行用单引号包裹了4个字符,违反了单引号的使用规则,是报错的直接原因。
修复方法
将color常量定义处的单引号替换为双引号即可,修正后的可运行完整代码如下:
package main import ("fmt") func main() { const NAME = "Michael" const( age int = 22 color = "Fair" ) fmt.Println(NAME) fmt.Println(age) fmt.Println(color) }
运行上述代码将正常输出结果:
Michael 22 Fair
扩展知识点
Go中三种引号的使用场景不要和其他语言的习惯混淆:
- 单引号
':仅用于单个字符表示,对应类型为rune(本质是int32别名),合法写法如'F'、'中' - 双引号
":用于定义支持转义的字符串,内部支持\n这类转义字符,是最常用的字符串定义方式 - 反引号
`:用于定义原生字符串,内部内容会原样保留,不做任何转义解析,适合编写多行文本、正则表达式等场景
内容的提问来源于stack exchange,提问作者MOHAN ANNA
相关产品推荐
相关产品推荐

