GO变量与常量专题测试
考察知识点
1. 基本数据类型
- 数值类型:int系列(int/int8/int16/int32/int64)、uint系列、float32/float64
- 布尔类型:bool(true/false)
- 字符串类型:string(UTF-8编码)
- 复数类型:complex64、complex128
- 特殊类型:byte(uint8别名)、rune(int32别名)
- 基本类型vs复合类型:区分int与array/slice/map
2. 变量声明方式
- var关键字:
var name type、var name = value - 短变量声明:
name := value(函数内使用) - 批量声明:
var (...)块声明多个变量 - 声明位置限制::=只能在函数内、var可在任何位置
3. 变量初始化与零值
- 零值机制:声明后自动初始化
- 各类型零值:int=0、float=0.0、bool=false、string=""、指针=nil
- 类型推断:有初始值时自动推断类型
- 推断规则:整数→int、浮点→float64、字符→rune
4. 变量作用域与可见性
- 作用域层级:包级、函数级、块级
- 可见性规则:大写开头导出、小写开头私有
- 变量遮蔽:内层变量遮蔽外层同名变量
- :=作用域:if/for中的初始化变量作用域限制
5. 类型转换
- 显式转换:必须使用
类型名(变量)语法 - Go特点:无隐式类型转换
- 精度丢失:float转int会丢失小数部分
- strconv包:Atoi/Itoa用于字符串与数值转换
6. strconv包常用函数
- Atoi:字符串转int
- Itoa:int转字符串
- ParseFloat:字符串转float
- FormatFloat:float转字符串
- ParseBool/FormatBool:bool转换
- ParseInt/FormatInt:基数转换
7. 常量定义与iota
- const关键字:定义常量
- 常量特点:编译时确定、不可修改
- 无类型常量:可赋给多种类型
- iota枚举:从0开始的自增计数器
- iota表达式:
1 << iota等计算
8. 变量命名规范
- 驼峰命名:userName、UserId
- 首字母大小写:决定导出/私有
- 简短变量:循环中使用i、j等简短名
- 常量命名:全大写或驼峰
Go语言中,以下哪个是基本数据类型?
Go语言中的string类型是基本数据类型,且字符串是不可变的。
Go中int8的范围是 _________,uint8的范围是 ______。float32和float64遵循 _______ 标准。bool类型只有 ______ 和 ______ 两个值。
Go语言中声明变量的关键字是?
Go的短变量声明(:=)可以在函数外部使用。
Go声明变量有三种方式:使用 ______ 关键字声明、使用 ______ 短变量声明、使用 ______ 块声明。短变量声明只能在 ________ 使用,会自动 ______ 变量类型。
Go语言中,变量声明后如果不显式初始化,会被赋予什么值?
Go中int类型的零值是0,bool类型的零值是false,string类型的零值是空字符串""。
Go变量声明后自动初始化为 ______,数值类型的零值是 ______,布尔类型是 ______,字符串是 ____________,指针和切片是 ______。显式初始化可以覆盖 ______。
Go中初始化变量时,如果提供了初始值,是否必须显式指定类型?
Go中多变量初始化的正确方式包括?
Go语言中定义常量使用哪个关键字?
Go中进行类型转换的语法是?
Go语言不支持隐式类型转换,不同类型的变量不能直接赋值或运算。
Go变量可见性遵循 ______ 规则,包级变量名 ______ 开头可被外部包访问,______ 开头仅在当前包内可见。函数内变量 ______ 有效,块级变量仅在 ______ 块内有效。
Go中以下哪些是数值基本类型?
Go字符串与数值转换使用 _______ 包, ______ 函数将字符串转为int, ______ 函数将int转为字符串。 __________ 转字符串为浮点数, ___________ 转浮点数为字符串。
Go中if语句的初始化语句中声明的变量,其作用域范围是?
Go中的iota是常量计数器,每新增一行常量声明,iota自动增加1。
Go语言中,变量的作用域分为几个层级?
📝 发现内容有误?点击此处直接编辑
长按或扫描二维码,立即体验