为了账号安全,请及时绑定邮箱和手机立即绑定

在 Go 中传递任何类型的惯用方式(同时保持编译时类型检查?)

在 Go 中传递任何类型的惯用方式(同时保持编译时类型检查?)

Go
不负相思意 2021-09-09 21:41:54
我正在解析一个表单并编写了许多函数func parseAndValidateX(val string) (T, err),其中 T 是任何类型。现在我想写一个闭包func  catchError(T, Error) T,以便我可以执行以下操作:errors []Errorfunc catchError(val T, err Error) T {    if err != nil {        //append err to errors    }    return val}data = MyStruct {Age = catchError(parseAndValidateAge("5")) // Age is a intDistanceFromHome = catchError(parseAndValidatePi("3.14")) // DistanceFromHome is a floatLocation = catchError(parseAndValidatePi("3.14,2.0")) //Location is a custom Struct}if len(errors) > 0 {    // o, oh}这在 Go 中可能吗?如何轻松/惯用地做到这一点?
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 170 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信