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 關注
- 119 瀏覽
添加回答
舉報