面试题答案
一键面试-
var
声明并初始化- 语法特点:
var 变量名 类型 = 值
,类型必须明确指定。例如:
var num int = 10
- 使用场景:适用于需要明确指定变量类型,或者变量初始化逻辑较为复杂,需要在声明时就确定初始值的场景。比如在一些对数据类型要求严格的计算场景,或者在与外部接口交互,需要特定类型数据时。
- 语法特点:
-
简短声明
- 语法特点:
变量名 := 值
,由编译器自动推导变量类型。例如:
str := "hello"
- 使用场景:在局部作用域中,当变量类型可以由初始值明显推导出来,且代码简洁性要求较高时使用。这在函数内部快速定义和初始化临时变量非常方便。但要注意,简短声明左边至少有一个新变量,否则是赋值操作。
- 语法特点:
-
var
声明多个变量并初始化- 语法特点:
var (变量名1 类型 = 值1 变量名2 类型 = 值2)
,可以一次声明多个变量并初始化。例如:
var ( a int = 5 b string = "world" )
- 使用场景:适用于需要声明多个相关变量的场景,使代码结构更清晰。比如在初始化一组配置参数时,将它们集中声明和初始化。
- 语法特点:
-
使用
make
初始化切片、映射和通道- 语法特点:
- 切片:
切片名 := make([]类型, 长度, 容量)
,容量参数可选。例如:s := make([]int, 5, 10)
- 映射:
映射名 := make(map[键类型]值类型)
。例如:m := make(map[string]int)
- 通道:
通道名 := make(chan 类型)
。例如:ch := make(chan int)
- 切片:
- 使用场景:专门用于初始化Go语言中引用类型(切片、映射和通道)。切片初始化用于确定初始长度和容量,映射初始化用于创建一个空的键值对集合,通道初始化用于创建用于 goroutine 之间通信的通道。
- 语法特点: