注册 登录

清河洛

go语言的变量和常量

qingheluo2021-09-02清河洛285
Go语言变量变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念。声明变量:使用var关键字:var 变量名 type 一次声明多个变量: var 变量1,变量2 type 或 var( 变量1 [type] 变量2 [type] ) 这种写法一般用于声明全局变量,且声明的变量类型可以不同 一个变量名称在一个程序中只能声明一次,重复声明会报错 如果声明的变量没有初始化,则变量为默认值 数值类型为0 布尔类型为false 字符串为空字符串("") 以下几种类型为 nil: var a *int...

Go语言变量

变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念。

声明变量:

使用var关键字:var 变量名 type

一次声明多个变量:
    var 变量1,变量2 type
    或
    var(
        变量1 [type]
        变量2 [type]
    )
    这种写法一般用于声明全局变量,且声明的变量类型可以不同

一个变量名称在一个程序中只能声明一次,重复声明会报错

如果声明的变量没有初始化,则变量为默认值

数值类型为0
布尔类型为false
字符串为空字符串("")
以下几种类型为 nil:
    var a *int
    var a []int
    var a map[string] int
    var a chan int
    var a func(string) int
    var a error // error 是接口

变量初始化

先声明再赋值
var demo int
int = 5

声明的同时赋值
var demo int = 5

声明的同时赋值可以省略数据类型,go编译器会根据值自行判定变量类型
var demo = 5

为了简化代码,go还提供了一种省略var关键字的写法(:=)
demo := 5 等同于:var demo = 5
这种写法只能用在函数体中,且不能指定数据类型

多变量初始化
var demo1,demo2,demo3 int
var demo1,demo2,demo3 [int] = 3,4,5
var(
    demo1 = 5
    demo2 string = "字符串"
)

var demo1,demo2,demo3[ int] = 3,4,5
demo1,demo2,demo3 := 3,4,5

如果声明了一个局部变量却没有使用它,会得到编译错误,但是全局变量是允许声明但不使用的

简单地使用 a, b = b, a就可以交换两个变量的值,前提是两个变量的类型必须是相同

空白标识符(_)

空白标识符被用于抛弃值

var a , _ , b = 3,4,5
会抛弃值4,把3赋值给变量a,把5赋值给变量b

实际上空白标识符(_)是一个只写变量,只能赋值带获取它的值

空白标识符最常见的用途就是根据一个函数的返回值对变量赋值时抛弃某些值,因为Go语言中必须使用所有被声明的变量,但有时并不需要使用从一个函数得到的所有返回值

Go语言常量

常量是在程序运行时,不会被修改的量

常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型

常量的声明使用const关键字

const c_name1, c_name2 [type] = value1, value2

const (
    c_name1 [type] = value1
    c_name2 [type] = value2
)

特殊常量iota

可以认为是一个可以被编译器修改的常量

iota在const关键字出现时将被重置为0,const中每新增一行常量声明将使iota计数一次(加1)

const (
    a = iota   //0
    b          //1
    c = "ha"   //独立值,iota仍然会+1
    d          //3
    e = iota   //4
    f          //5
)
但是使用单行声明常量时iota始终为0
const a = iota //0
const a,b,c = iota,iota,iota  //三个常量值都为0



网址导航