MST

星途 面试题库

面试题:Go不定参数与接口类型结合使用

定义一个接口 `Printer`,有一个方法 `Print()`。编写一个Go函数,接受不定参数,这些参数实现了 `Printer` 接口,函数内部循环调用每个参数的 `Print()` 方法。
19.0万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试
package main

import "fmt"

// 定义Printer接口
type Printer interface {
    Print()
}

// 定义接受不定参数的函数
func printAll(printers ...Printer) {
    for _, printer := range printers {
        printer.Print()
    }
}

你可以通过如下方式测试这个函数:

// 定义一个实现Printer接口的结构体
type MyPrinter struct{}

func (m MyPrinter) Print() {
    fmt.Println("This is MyPrinter")
}

func main() {
    var p1 Printer = MyPrinter{}
    var p2 Printer = MyPrinter{}
    printAll(p1, p2)
}