gpt4 book ai didi

function - 去链式函数调用?

转载 作者:IT王子 更新时间:2023-10-29 02:25:31 29 4
gpt4 key购买 nike

不确定正确的名称是什么,但我正在寻找有关 Go 中“链式函数调用”的更多信息。例如:

foo.DoSomething().WithThisOptionalThing()

所以我可以使用 foo.DoSomething() 但可以添加 .WithThisOptionalThing() 来做一些额外的事情。这可能吗?请给我指出正确的方向/提供一些例子。

最佳答案

基本上,您可以让所有配置函数不断返回主要“对象”,同时将所有东西链接在一起并拥有最终的“Go”函数或任何您想要调用它以使其执行操作的函数。

这是一个关于 play 的例子

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
}

关于function - 去链式函数调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46390796/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com