選項模式 option

2021-10-17 03:30:50 字數 1418 閱讀 5333

package main

import

("fmt"

)//使用場景,大量修改乙個結構體,增加字段值,初始化極其麻煩

//引入option模式後,直接加乙個屬性和乙個函式就可以搞定

type message struct

func

(msg message)

string()

func

new(id, phone int

, name, addr string

) message

}type option func

(msg *message)

var default_message = message

func

withid

(id int

) option

}func

withname

(name string

) option

}func

withaddress

(addr string

) option

}func

withphone

(phone int

) option

}func

newbyoption

(opts ...option) message

return msg

}func

newbyoptionwithoutid

(id int

, opts ...option) message

return msg

}func

main()

//另乙個例子

type optionfunc func

(op *optionmenu)

type optionmenu struct

func

initoptions

(optionfuncs ...optionfunc) optionmenu

for_

, op :=

range optionfuncs

return option

}func

withop1

(op1 string

) optionfunc

}func

withop2

(op2 string

) optionfunc

}func

withop3

(op3 int

) optionfunc

}func

withop4

(op4 int

) optionfunc

}func

main1()

Golang 選項模式(Option模式)

option模式的專業術語為 functional options pattern 函式式選項模式 option模式為golang的開發者提供了將乙個函式的引數設定為可選的功能,也就是說我們可以選擇引數中的某幾個,並且可以按任意順序傳入引數。比如針對特殊場景需要不同引數的情況,c 可以直接用過載來寫...

select中option選項操作

一 jquery獲取select選擇的text和value 1 獲取select選擇的text var checktext jquery select id find option selected text 2 獲取select選擇的option value var checkvalue jque...

JS 給select新增option選項

js 給select新增option選項 今天遇到乙個問題,就是動態新增option到slect裡面在ie6不成功 script varshosetype document.createelement select shosetype.setattribute id sc varoption 新增成...