go 变量 常量 字面量

go 变量 常量 字面量

1.1 变量类型

类型 go变量类型 fmt输出
整型 int int8 int16 int32 int64 uint uint8 uint16 uint32 uint64 %d
浮点型 float32 float64 %f %e %g
布尔型 bool %t
指针 uintptr %p
引用 map slice channel %v
字节 byte %c
任意字符 rune %c
字符串 string %s
错误 error %v

2.1 变量声明

Go语言变量必须先声明再使用,所谓使用指读取或修改

标题声明

var name string 
var age int 
var isOk bool

批量声明

var ( 
	name string 
	age int 
	isOk bool 
)

3.1 变量初始化

如果声明后未显式初始化,数值型初始化0,字符串初始化为空字符串,布尔型初始化为false,引用类型、函数、指针、接口初始化为nil。

var a string="china"  //初始化一个变量
var a="china"  //类型推断为string
var a,b int=3,7  //初始化多个变量
var a,b="china",7  //初始化多个变量,每个变量都单独地执行类型推断    

函数内部的变量(非全局变量)可以通过:=声明并初始化

a:=3

下划线表示匿名变量。匿名变量不占命名空间,不会分配内存,因此可以重复使用

_=2+4

4.1 常量

常量

常量在定义时必须赋值,且程序运行期间其值不能改变

const PI float32=3.14

const(
    PI=3.14
    E=2.71
)

const(
    a=100
    b	//100,跟上一行的值相同
    c	//100,跟上一行的值相同
)

iota

const(
    a=iota	//0
    b		//1
    c		//2
    d		//3
)

const(
    a=iota 	//0
    b		//1
    _		//2
    d		//3
)

const(
    a=iota 	//0
    b=30    
    c=iota 	//2
    d		//3
)

const(
    _=iota		// iota =0
    KB=1<<(10* iota) 	// iota =1
    MB=1<<(10* iota) 	// iota =2
    GB=1<<(10* iota) 	// iota =3
    TB=1<<(10* iota) 	// iota =4
)

const(
    a,b=iota+1, iota+2	//1,2  iota =0
     c,d			//2,3  iota =1
     e,f			//3,4  iota =2
)

5.1 字面量

字面量--没有出现变量名,直接出现了值。基础类型的字面量相当于是常量。

fmt.Printf("%t\n", 04 == 4.00) //用到了整型字面量和浮点型字面量
fmt.Printf("%v\n", .4i) //虚数字面量 0.4i
fmt.Printf("%t\n", '\u4f17' == '众') //Unicode和rune字面量
fmt.Printf("Hello\nWorld\n!\n") //字符串字面量
posted @ 2022-05-14 19:57  liwenchao1995  阅读(81)  评论(0)    收藏  举报