全部学科
Python全栈
python
NodeJS全栈
nodejs
📝 1 篇文章 20 道配套习题

GO变量与常量专题

专题说明

本专题系统讲解Go语言变量与常量的基础知识,帮助初学者掌握变量声明方式、初始化规则、作用域管理、类型转换技巧,以及常量定义与iota枚举机制。

学习目标

  1. 掌握Go变量的三种声明方式:var、短声明:=、类型推断
  2. 理解变量作用域与可见性规则
  3. 学会基本数据类型与类型转换
  4. 掌握常量定义与iota枚举使用
  5. 了解变量零值与初始化规则

学习内容

  • 基本数据类型:int、float、string、bool、byte、rune
  • 变量声明:var关键字、短声明:=、批量声明
  • 变量初始化:零值初始化、类型推断、显式赋值
  • 变量作用域:包级、函数级、块级作用域
  • 类型转换:显式转换、strconv包函数
  • 常量与iota:const定义、枚举模式、表达式规则

学习建议

  1. 从基本数据类型入手,理解每种类型的特点
  2. 对比var和:=两种声明方式的使用场景
  3. 重点理解Go的类型转换必须是显式的特点
  4. 通过实例练习iota枚举的各种模式
  5. 注意变量可见性规则(大小写区分导出/未导出)

📝 配套习题(20 题)

💡 参考答案在文末
判断题
1

Go中int类型的零值是0,bool类型的零值是false,string类型的零值是空字符串""。

A

B

2

Go语言中的string类型是基本数据类型,且字符串是不可变的。

A

B

3

Go中内部作用域可以声明与外部作用域同名变量,这称为变量遮蔽(variable shadowing)。

A

B

4

Go中的iota是常量计数器,每新增一行常量声明,iota自动增加1。

A

B

5

Go的短变量声明(:=)可以在函数外部使用。

A

B

6

Go语言不支持隐式类型转换,不同类型的变量不能直接赋值或运算。

A

B

单选题
7

Go语言中,变量声明后如果不显式初始化,会被赋予什么值?

A

undefined

B

null

C

零值(类型的默认值)

D

随机值

8

Go中进行类型转换的语法是?

A

类型名(变量)

B

(变量)类型名

C

cast(变量, 类型)

D

convert(变量, 类型)

9

Go语言中,变量的作用域分为几个层级?

A

两个:全局和局部

B

三个:包级、函数级、块级

C

四个:包级、文件级、函数级、块级

D

只有一个全局作用域

10

Go中初始化变量时,如果提供了初始值,是否必须显式指定类型?

A

必须显式指定类型

B

不需要,Go会自动推断类型

C

只有数值类型需要指定

D

只有字符串类型需要指定

11

Go语言中,以下哪个是基本数据类型?

A

array

B

slice

C

int

D

map

12

Go语言中定义常量使用哪个关键字?

A

var

B

let

C

const

D

final

13

Go语言中声明变量的关键字是?

A

let

B

var

C

define

D

declare

多选题
14

Go中多变量初始化的正确方式包括?

A

var x, y int = 1, 2

B

x, y := 1, 2

C

var (x = 1; y = 2)

D

var x, y = 1, "hello"

E

var x int, y string = 1, "hello"

15

关于Go类型转换,以下说法正确的是?

A

int和float64可以直接转换

B

string和int需要使用strconv包转换

C

不同类型必须显式转换才能运算

D

所有类型都可以互相转换

E

类型转换可能导致精度丢失

填空题
16

Go的 ____________ 是常量计数器,在 ____________ 块中自动递增,起始值为 ____________。可以使用 << iota 创建位运算常量,跳过某些值使用 =_ 空标识符。

17

Go变量声明后自动初始化为 ____________,数值类型的零值是 ____________,布尔类型是 ____________,字符串是 "",指针和切片是 nil。显式初始化可以覆盖 零值。

18

Go声明变量有三种方式:使用 ____________ 关键字声明、使用 ____________ 短变量声明、使用 ____________ 块声明。短变量声明只能在 函数内部 使用,会自动 推断 变量类型。

19

Go中int8的范围是 ____________,uint8的范围是 ____________。float32和float64遵循 ____________ 标准。bool类型只有 true 和 false 两个值。

20

Go变量可见性遵循 ____________ 规则,包级变量名 ____________ 开头可被外部包访问,____________ 开头仅在当前包内可见。函数内变量 局部 有效,块级变量仅在 {} 块内有效。

参考答案
1.正确 2.正确 3.正确 4.正确 5.错误 6.正确 7.C 8.A 9.B 10.B 11.C 12.C 13.B 14.A;B;D 15.A;B;C;E 16.iota;const;0 17.零值;0;false 18.var;:=;var() 19.-128到127;0到255;IEEE754 20.作用域;大写;小写
想在手机上练习这套专题?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码
← 上一个专题 GO函数专题
下一个专题 → GO复合数据类型专题
扫码体验小程序
加载中
想在手机上刷题学习?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码