我想在 Go 中创建一个方法链 API。在所有示例中,我都可以发现链式操作似乎总是会成功,但我无法保证。因此,我尝试扩展这些以添加错误返回值。
如果我这样做
package main
import "fmt"
type Chain struct {
}
func (v *Chain)funA() (*Chain, error ) {
fmt.Println("A")
return v, nil
}
func (v *Chain)funB() (*Chain, error) {
fmt.Println("B")
return v, nil
}
func (v *Chain)funC() (*Chain, error) {
fmt.Println("C")
return v, nil
}
func main() {
fmt.Println("Hello, playground")
c := Chain{}
d, err := c.funA().funB().funC() // line 24
}
编译器告诉我chain-err-test.go:24: multiple-value c.funA() in single-value context并且不会编译。有什么好方法可以让 funcA、funcB 和 funcC 报告错误并停止该链?
慕码人8056858
梦里花落0921
相关分类