Loading...

文章背景图

go基础:变量

2026-07-01
1
-
- 分钟
|

在变量之前使var会自动初始化为该类型的零值

变量可以是基本数据类型,或者是结构体是interface。

结构体的零值nil,相当于null。

全局变量可以只声明,不使用

定义多个变量

var (

	a int

	b string

	c,d *int//cd均为int的指针

)

在函数体内部声明变量可以使:=相当于直接使var

var是纯粹的定义变量的关键字,所以如果使用var来定义定义过的变量是不行的,例如

var a, b, c = 1, 2, 3  

var a, c, d = 1, 2, 3

```

这个是不行的,但:=可以

a, b, c := 1, 2, 3  

a, c, d := 1, 2, 3

结果是a、b两个变量被重新赋值,没有创建新的变量

不同类型不能混用,int和int32也不能混用

常量可以,常量可以根据上下文来自动操作数据类型

定义复数

complex64 (32 位实数和虚数)

complex128 (64 位实数和虚数)

re+imI 来表示,其中 re 代表实数部分im 代表虚数部分I 代表根号负 1。函数 real(c) 和 imag(c) 可以分别获得相应的实数和虚数部分

使用反引号可以将专业原样输出sss\n\,输出结sss\n

常量不使用是不会报错的

const可以定义一个常量,定义的时候可以在后面加上数据类型,也可以不加。未定义类型的常量会在必要时刻根据上下文来获得相关类型。常量的值必须是能够在编译时就能够确定的。

const a=2/3//可以的。但是后续不能修改

数字或者字符串常量是不能取地址的。只有结构体字面量可以做到取地址。

编译时自定义函数是不能使用的,但是内置函数可以使用

反斜杠 \ 可以在常量表达式中作为多行的连接符使用

const可以用全部赋给一个值

const beef, two, c = "eat", 2, "veg"

const Monday, Tuesday, Wednesday, Thursday, Friday, Saturday = 1, 2, 3, 4, 5, 6

const (

	Monday, Tuesday, Wednesday = 1, 2, 3

	Thursday, Friday, Saturday = 4, 5, 6

)

const(

	a="haha"

	b //haha

	c //haha

)

iota是一个常量生成器,从0开始增加

iota 也可以当场一个变量来使用

iota和行数计数器相似,想要完全重置需要重新开一个const

const(

		_=iota

		a//1

		b//2

		c//3

		)

//或者

const(

		a=iota//0

		b//1

		c//2

		)

const a=iota//a=0

const (

	Apple, Banana = iota + 1, iota + 2 // Apple=1 Banana=2

	Cherimoya, Durian                  // Cherimoya=2 Durian=3

	Elderberry, Fig                    // Elderberry=3, Fig=4

)

const(

	a=1<<iota //右移0位

	b //2 移动1位

	c //4

	d //8

	e //16 

)

const (  

    b = 1 << iota //01  

    c             //10  

    d             //100  

    e = iota      //3  

    r             //4

    x = iota      //5

    z             //6

)

iota只能在一个块里面增长,每次遇到const都会重置。

评论交流

文章目录