gpt4 book ai didi

Golang 多值函数组合

转载 作者:IT王子 更新时间:2023-10-29 02:24:57 26 4
gpt4 key购买 nike

我还没有在 SO 上找到答案的简短问题:当内部函数有多个返回值时,如何编写复合函数调用?

子问题:是否可以在不使用临时变量的情况下只转换多值函数的一个返回值?

示例:http://play.golang.org/p/intnxkzSO1

package main

import "fmt"

func multiReturn() (int, int) {
return 0, 1
}

func noOp(a int) int {
return a
}

func main() {

// Too many arguments
fmt.Print(noOp(multiReturn()))

// multiple-value in single-value context
fmt.Print(string(multiReturn()))
}

最佳答案

你可以让你的外部函数匹配内部函数的返回值

func multiReturn() (int, int) {
return 10, 1
}

func noOp(a, _ int) int {
return a
}

func main() {
fmt.Printf("%v\n", noOp(multiReturn())) // output: 10
fmt.Printf("%s", strconv.Itoa(noOp(multiReturn()))) // output: 10
}

注意 string(int) 不起作用,您必须使用 strconv 包。

play

另一种选择是使用 variadic参数。

func noOp(a ...int) int {
if len(a) > 0 {
return a[0]
}
return 0
}

关于Golang 多值函数组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26692327/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com