核心概念+声明方式+类型详解
一、变量:存储可变数据的容器
核心特点:
变量的值在程序运行过程中可修改,需指定数据类型(或通过编译器自动推导),Go语言是静态类型语言,变量类型一旦确定不可变更。
4种声明方式(实战常用前3种)
① 显式声明(最规范):格式「var 变量名 数据类型 = 初始值」,类型与值需匹配。
示例:
var name string = "Go开发者" // 字符串类型变量name,初始值为"Go开发者"
var age int = 25 // 整型变量age,初始值为25
var isStudy bool = true // 布尔型变量isStudy,初始值为true
② 类型推导(最常用):格式「var 变量名 = 初始值」,编译器根据初始值自动判断类型,简洁高效。
示例:
var height = 1.75 // 编译器推导为float64类型(浮点型)
var city = "北京" // 编译器推导为string类型
③ 短变量声明(局部变量专用):格式「变量名 := 初始值」,只能在函数内部使用,不能在包级声明,是Go语言局部变量的首选方式。
示例(需在main函数内):
func main() {
score := 95.5 // 局部变量score,推导为float64类型
count := 100 // 局部变量count,推导为int类型
}
④ 批量声明:用var关键字批量定义多个变量,减少重复代码,支持显式类型或类型推导。
示例:
// 显式类型批量声明
var ( id int = 1001 addr string = "上海市" )
// 类型推导批量声明
var ( weight = 65.0 isMale = true )
3. 常用基础类型
① 整型(int):
存储整数,分 有符号(
int8/int16/int32/int64/int)和无符号(uint8/uint16等),日常开发用int(随系统位数自动适配,64位系统为int64,32位为int32)。
示例:
var num int = 1000 // 通用整型
var num32 int32 = 2147483647 // 32位有符号整型,最大值固定
② 字符串(string):
存储文本,用双引号””或反引号“包裹(反引号支持多行文本),不可修改单个字符(需通过切片转换后修改)。
示例:
var msg1 string = "Hello Go" // 单行字符串
var msg2 string = `这是 多行 字符串` // 多行字符串,保留换行格式
③ 布尔型(bool):
仅存true(真)或false(假),无其他取值,常用于条件判断。
示例:
var isSuccess bool = true
var hasError bool = false
④ 浮点型(float32/float64):
存储小数,float64精度更高(默认推导类型),日常开发优先用float64。
示例:
var pi float64 = 3.1415926 // 高精度浮点型
var price float32 = 19.9 // 单精度浮点型
二、常量:存储不可变数据的标识
核心特点:
值在声明后不可修改,编译期确定值,支持自动类型推导,常用于存储固定值(如数学常量、配置固定参数)。
2种声明方式
① 基本声明:
格式「const 常量名 类型 = 值」,类型可省略(自动推导)。
示例:
const PI float64 = 3.1415926 // 显式类型常量
const MAX_AGE = 120 // 类型推导常量,int类型
const APP_NAME = “Windows工具” // 字符串常量
② 批量声明:
与变量批量声明类似,适合定义一组相关常量。
示例:
const ( VERSION = "v1.0.0" AUTHOR = "Go学习者" PORT = 8080 )
特殊用法:iota常量生成器 用于生成连续的整数常量,简化批量定义连续值的场景(如枚举),每新增一行iota值自增1。
示例:
const ( Monday = iota // Monday=0 Tuesday // Tuesday=1(自动继承iota,自增1) Wednesday // Wednesday=2 Thursday // Thursday=3 )
三、实战注意事项
1. 变量未赋值时会有默认零值(int为0,string为空串””,bool为false,float64为0.0);
2. 短变量声明不能重复声明同一变量,但可同时声明多个变量(如a, b := 1, 2);
3. 常量值必须是编译期可确定的(如不能用函数返回值给常量赋值);
4. 日常开发优先选择:局部变量用短变量声明(:=),包级变量用var类型推导,固定值用常量。