MST

星途 面试题库

面试题:Go语言中空接口在函数参数传递方面的应用场景

请举例说明在Go语言中,空接口作为函数参数时,有哪些常见的实用场景?并编写简单代码展示其用法。
30.8万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试

常见实用场景

  1. 通用数据处理:当函数需要处理各种不同类型的数据,但逻辑相对统一时,可使用空接口作为参数。例如,实现一个打印任何类型数据的函数。
  2. 容器存储多种类型数据:在Go语言中,map和slice等容器如果需要存储不同类型的数据,可使用空接口作为元素类型。

代码示例

  1. 通用打印函数
package main

import "fmt"

func printAnything(data interface{}) {
    fmt.Printf("The data is of type %T and value is %v\n", data, data)
}

func main() {
    var num int = 10
    var str string = "Hello, Go"
    var b bool = true

    printAnything(num)
    printAnything(str)
    printAnything(b)
}
  1. 使用空接口在map中存储不同类型数据
package main

import "fmt"

func main() {
    myMap := make(map[string]interface{})
    myMap["number"] = 42
    myMap["text"] = "This is a string"
    myMap["boolean"] = true

    for key, value := range myMap {
        fmt.Printf("Key: %s, Value type: %T, Value: %v\n", key, value, value)
    }
}