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") //字符串字面量
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!