我希望在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可以报告错误并停止该链?
Chain
对象设为有状态的,并带有一个错误来检查每个方法。 - Not_a_Golfer