繁体   English   中英

从函数返回错误和接口

[英]Go return error along with interface from a function

有没有办法用golang中的函数接口返回错误?

func abc(ctx context.Context, call func() error) (interface{}, err) {

有点像上面的原型? 要求是我传递一个可以接受多种输入数据类型并返回该特定数据类型的函数。

谢谢!

package main

import (
    "fmt"
    "errors"
)

func return_something() (interface{}, error) {
    return 123, errors.New("this is an error")
}

func main() {
    fmt.Println(return_something())
}

123 this is an error

https://play.golang.org/p/qqy1-Tn0yBy

请注意:其中一位 Go 的创造者 Rob Pike 曾经说过,空界面是 Go 最被滥用的功能之一,许多 SO 问题都是由于使用不当引起的。 确保您已经考虑过空接口是否真的适合您的用例

是的,您的回调函数可以接受多个输入和多个返回值。 试试函数闭包是否适合你。

关闭

这是使用回调的一种方式,有很多种使用方式。

https://play.golang.org/p/_4dQwJ_jPSD

尝试映射 map 中的函数并与 key 一起使用

尝试将函数分配给函数类型等

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM