MST

星途 面试题库

面试题:Go语言中Map延迟初始化的实现方式

请阐述在Go语言中如何对Map进行延迟初始化,即当真正需要使用Map时才进行初始化操作,并且请给出具体的代码示例。
23.1万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试

在Go语言中,可以通过以下方式对Map进行延迟初始化:

  1. 使用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)
}
  1. 使用函数封装延迟初始化逻辑
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时才会对其进行初始化,避免了不必要的资源浪费。