gpt4 book ai didi

go - 结构中的函数。为什么?

转载 作者:IT王子 更新时间:2023-10-29 00:57:59 24 4
gpt4 key购买 nike

在 go 中的结构中定义函数的用例/优势是什么?

type demo struct {
F func()
}

最佳答案

我认为最好的答案是一个例子。

Client.CheckRedirect在文档中。

type Client struct {
// (...)
CheckRedirect func(req *Request, via []*Request) error
}

只要 http.Client 有重定向响应,就会调用此函数。事实上,这个函数是一个公共(public)属性,您可以在创建 Client 对象时或之后设置它,因此您可以在这种情况下定义自定义行为。

client := &http.Client{
CheckRedirect: func(req *http.Request, via []*http.Request) error {
return http.ErrUseLastResponse
}
}

函数属性只是自定义行为的委托(delegate)(不仅如此!)。

另一个例子是创建一个有事件的对象。

type Example struct {
EventHandler func(params []interface{})
}

您可以通过设置 Example.EventHandler 属性来指定该事件的行为。

关于go - 结构中的函数。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45388814/

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