面试题答案
一键面试在Go语言中,Map有以下几种初始化方式及其适用场景:
- 使用
make
函数初始化:- 适用场景:适用于事先知道大概元素数量,希望在初始化时就分配好足够内存以减少后续动态扩容开销的场景。
- 代码示例:
package main
import "fmt"
func main() {
// 使用make函数初始化一个map,预计存放10个元素
m := make(map[string]int, 10)
m["one"] = 1
m["two"] = 2
fmt.Println(m)
}
- 使用字面量初始化:
- 适用场景:适用于在初始化时就已知所有键值对的场景,代码简洁明了,常用于初始化小型且固定内容的map。
- 代码示例:
package main
import "fmt"
func main() {
// 使用字面量初始化map
m := map[string]int{
"one": 1,
"two": 2,
}
fmt.Println(m)
}
- 先声明后赋值:
- 适用场景:适用于先声明一个map变量,后续在不同地方逐步添加键值对的场景,通常在逻辑较为复杂,初始化过程需要分阶段进行时使用。
- 代码示例:
package main
import "fmt"
func main() {
var m map[string]int
// 后续再进行初始化
m = make(map[string]int)
m["one"] = 1
m["two"] = 2
fmt.Println(m)
}