You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 22:30:43