面试题答案
一键面试在Go语言中,可以通过以下方式对Map进行延迟初始化:
- 使用
if
语句检查并初始化:
package main
import "fmt"
func main() {
var myMap map[string]int
// 使用前检查是否为nil,如果是则初始化
if myMap == nil {
myMap = make(map[string]int)
}
myMap["key"] = 100
fmt.Println(myMap)
}
- 使用函数封装延迟初始化逻辑:
package main
import "fmt"
func getMap(m map[string]int) map[string]int {
if m == nil {
m = make(map[string]int)
}
return m
}
func main() {
var myMap map[string]int
myMap = getMap(myMap)
myMap["key"] = 100
fmt.Println(myMap)
}
通过上述方法,只有在需要使用Map
时才会对其进行初始化,避免了不必要的资源浪费。