Go报错:more than one character in rune literal

在编译代码时 出现了以上错误

原因是用错了引号的表达方式。

package main

import(
    "fmt"
)

func main(){
    fmt.Println('hello world')
}123456789

一眼看上去没啥问题
但是就是会报错

more than one character in rune literal1

为啥呢?

单引号,双引号
在go语法中,双引号是常用的来表达字符串,如果你使用了单引号,编译器会提示出错

invalid character literal (more than one character)
``
单引号只能包含一个字符,例如’b’ ,程序会输出98表示字符b的ascii码。

如果非要使用单引号输出必须使用string函数转换
fmt.Println(string('b') )
Printf 和 Println 的区别
printf 输出后不换行, println输出后自动换行;
printf格式化输出,println 直接输出内容

单引号,双引号
在go语法中,双引号是常用的来表达字符串,如果你使用了单引号,编译器会提示出错
invalid character literal (more than one character)

单引号只能包含一个字符,例如’a’ ,程序会输出97表示字符a的ascii码。

如果非要使用单引号输出必须使用string函数转换
fmt.Println(string('a') )

Printf 和 Println 的区别
printf 输出后不换行, println输出后自动换行;
printf格式化输出,println 直接输出内容

导包和定义变量
在golang中,倒入的包和定义的变量都必须被引用,否则编译器会报错,这点不同于python,在python 中引入的包和定义的变量即使没有被使用解释器也不会报错。

赋值时的下划线
_, b = 5, 7
在上面的语句中,5这个值被丢弃。在golang中一个值被赋予下划线表示被丢弃

golang中字符串
字符串类型在 go 里是个结构, 包含指向底层数组的指针和长度,这两部分每部分都是 8 个字节,所以字符串类型大小为 16 个字节。

go语言缩进
go语言默认缩紧为tab,不同于python,后者推荐使用空格。

编译部署
go是编译型语言,并且可以在一个平台上编译多个平台的版本,我们称之为交叉编译。


评论 (1)

  • Whackiz Reply

    Apr 13 2022 03:12 am

发表评论