1 回答
TA贡献1877条经验 获得超1个赞
在您的情况下,您可以只为可选PageQuery
字段执行此操作,因为它是一个...
参数,它将来可以接受更多:
type Query struct {
TagsQuery string
PageQuery string
}
// First Constructor
func NewQuery(TagsQuery string, options ...Option) Query {
query := Query{
TagsQuery: TagsQuery,
PageQuery: "0", // default to first page
}
// Apply options if there are any, can overwrite default
for _, option := range options {
query = option(query)
}
return query
}
// Option definition
type Option func(Query) Query
// Function to create Option func to set pageQuery
func WithPageQuery(pageQuery string) Option {
return func(query Query) Query {
query.PageQuery = pageQuery
return query
}
}
然后调用它:
NewQuery("tags query only")
NewQuery("tags query", WithPageQuery("page query"))
- 1 回答
- 0 关注
- 96 浏览
添加回答
举报