第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

Go/可選參數(shù)中的多個(gè)構(gòu)造函數(shù)?

Go/可選參數(shù)中的多個(gè)構(gòu)造函數(shù)?

Go
烙印99 2023-06-19 15:23:36
我想知道是否有一種方法可以在 Go 中實(shí)現(xiàn)多個(gè)構(gòu)造函數(shù)(具有相同的函數(shù)名稱),就像在 Java 中一樣。另一種選擇可能是只有一個(gè)帶有可選參數(shù)的構(gòu)造函數(shù),但我不確定該怎么做。type Query struct {? ? TagsQuery string? ? PageQuery string}// First Constructorfunc NewQuery(TagsQuery string) Query {? ? return Query{? ? ? ? TagsQuery: TagsQuery,? ? ? ? PageQuery: "0", // default to first page? ? }}// Second Constructorfunc NewQuery(TagsQuery string, PageQuery string) Query {? ? return Query{? ? ? ? TagsQuery: TagsQuery,? ? ? ? PageQuery: PageQuery,? ? }}第一個(gè)構(gòu)造函數(shù)接受一個(gè)參數(shù)TagsQuery并默認(rèn)PageQuery為0. 第二個(gè)構(gòu)造函數(shù)有兩個(gè)參數(shù):TagsQuery和PageQuery。
查看完整描述

1 回答

?
冉冉說

TA貢獻(xiàn)1877條經(jīng)驗(yàn) 獲得超1個(gè)贊

在您的情況下,您可以只為可選PageQuery字段執(zhí)行此操作,因?yàn)樗且粋€(gè)...參數(shù),它將來可以接受更多:

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

? ? }

}

然后調(diào)用它:


NewQuery("tags query only")

NewQuery("tags query", WithPageQuery("page query"))


查看完整回答
反對(duì) 回復(fù) 2023-06-19
  • 1 回答
  • 0 關(guān)注
  • 125 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)