簡體   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