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 新增成...