Function 去链式函数调用?
不确定正确的名称是什么,但我正在查找有关Go中链接函数调用的更多信息。例如: foo.DoSomething.with this optional thingFunction 去链式函数调用?,function,go,Function,Go,不确定正确的名称是什么,但我正在查找有关Go中链接函数调用的更多信息。例如: foo.DoSomething.with this optional thing 所以我可以使用foo.DoSomething,但是可以添加。使用这个可选的东西,它可以做额外的事情。这可能吗?请给我指出正确的方向/提供一些示例。基本上,您让所有配置函数不断返回主对象,同时将对象链接在一起,并有一个最终的Go函数或任何您想要调用的函数,以使其执行操作 下面是一个关于 您只需要知道:当涉及到链接事物时,您的方法应该 接收指
所以我可以使用foo.DoSomething,但是可以添加。使用这个可选的东西,它可以做额外的事情。这可能吗?请给我指出正确的方向/提供一些示例。基本上,您让所有配置函数不断返回主对象,同时将对象链接在一起,并有一个最终的Go函数或任何您想要调用的函数,以使其执行操作 下面是一个关于
您只需要知道:当涉及到链接事物时,您的方法应该 接收指针和返回指针 或 接收值和返回值 或 接收值和返回指针
至少它们是我所知道的工作组合。我找不到这方面的任何文档。如果您知道发生了什么,请告诉我。如果DoSomething返回的对象上带有WithThisOptionalThing方法,则与任何其他语言中的方法相同,这是可能的。但我真的不明白你在问什么。这让我想起了建筑商模式:
package main
import (
"fmt"
)
func main() {
DoSomething().Go()
DoSomething().WithThisOptionalThing().Go()
}
type Chainable struct {
thing bool
}
func DoSomething() *Chainable {
return &Chainable{}
}
func (c *Chainable) WithThisOptionalThing() *Chainable {
c.thing = true
return c
}
func (c *Chainable) Go() error {
// Actually do something now that it's been configured
fmt.Println("Thing is", c.thing)
return nil
}