MST

星途 面试题库

面试题:Go函数使用可变参数时如何处理默认值情况

假设你有一个Go函数接受可变参数,在某些场景下你希望为这些可变参数提供默认值。描述如何设计这样的函数,以及在调用时如何合理处理默认值与实际传入值,同时编写完整的代码示例。
27.8万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试
package main

import (
    "fmt"
)

// 定义一个接受可变参数的函数,并为参数提供默认值
func exampleFunction(params ...int) {
    const defaultParam = 10
    if len(params) == 0 {
        params = append(params, defaultParam)
    }

    for _, param := range params {
        fmt.Println(param)
    }
}

func main() {
    // 调用函数,不传入参数,使用默认值
    exampleFunction()

    // 调用函数,传入参数,不使用默认值
    exampleFunction(5, 15)
}

在上述代码中:

  1. 函数设计exampleFunction 接受可变参数 params。如果 params 的长度为0,即没有传入参数,那么将默认值 defaultParam 追加到 params 中。
  2. 调用处理
    • main 函数中,第一次调用 exampleFunction() 没有传入参数,此时函数使用默认值 10
    • 第二次调用 exampleFunction(5, 15) 传入了两个参数,函数使用传入的实际值,而不使用默认值。