MST

星途 面试题库

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

定义一个接口 `Printer` ,有一个方法 `Print()` 用于打印信息。编写一个Go函数,接受不定数量实现了 `Printer` 接口的对象作为参数,并依次调用每个对象的 `Print()` 方法。解释在这种场景下不定参数函数设计的要点。
30.0万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试
package main

import "fmt"

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

// 定义接受不定数量实现了Printer接口对象的函数
func printAll(printers ...Printer) {
    for _, printer := range printers {
        printer.Print()
    }
}

在这种场景下不定参数函数设计的要点:

  1. 参数类型一致性:所有传入的参数必须是实现了 Printer 接口的类型,确保函数在遍历调用 Print() 方法时不会出现类型不匹配问题。
  2. 遍历处理:使用循环(如 for 循环)对不定参数进行遍历,以便依次调用每个参数的 Print() 方法。
  3. 灵活性:不定参数函数提供了灵活的调用方式,可以传入任意数量实现了 Printer 接口的对象,提高了函数的通用性。