go - 一个空的接口(interface)映射在 golang 函数中做什么?

标签 go

我正在通读 an article on golang templates这出现在示例代码中。

func renderTemplate(w http.ResponseWriter, name string, data map[string]interface{}) error {
    // Ensure the template exists in the map.
    tmpl, ok := templates[name]
    if !ok {
        return fmt.Errorf("The template %s does not exist.", name)
    }

    w.Header().Set("Content-Type", "text/html; charset=utf-8")
    tmpl.ExecuteTemplate(w, "base", data)

    return nil
}

我不明白的部分是函数声明中的参数data:

data map[string]interface{}

我对go中的接口(interface)只有很基础的了解,但我不知道为什么会这样使用。

最佳答案

interface{} 就像 C 中的 (void*) 或 Java 中的 Object,它意味着任何类型的值都可以是存储在 map 中。

关于go - 一个空的接口(interface)映射在 golang 函数中做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30793673/

相关文章:

go - go中的二维 slice 类型转换

linux - 交叉编译围棋

google-app-engine - golang中不同实体种类的无情祖先查询

unix - 如何直接从终端/命令行运行 Golang) 代码?

go - 检查纬度/经度点是否在区域内

go - 尝试在电子表格上执行 BatchUpdate 请求时获取 'Undefined: sheets.DeleteSheet'

signals - 在执行结束时执行操作

docker - 如何为微服务应用程序配置 docker 公开端口?

go - 我可以在 Golang 中基于另一个类型参数来约束一个类型参数吗?

go - 我如何逐元素平方根 gonum 矩阵?