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") //字符串字面量
本文来自博客园,作者:liwenchao1995,转载请注明原文链接:https://www.cnblogs.com/liwenchao1995/p/16271181.html

浙公网安备 33010602011771号