golang 服务或结构体可选参数的赋值

Posted share-ideas

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang 服务或结构体可选参数的赋值相关的知识,希望对你有一定的参考价值。

// 服务结构体
type Server struct 
    opts options //可选参数变量
    addr string


//可选参数列表
type options struct 
    A int
    B string
    C bool
    D int


// 为可选参数赋值的函数
type ServerOption func(*options)

func Afunc(a int) ServerOption 
    return func(o *options) 
        o.A = a
    

func Bfunc(b string) ServerOption 
    return func(o *options) 
        o.B = b
    

func Cfunc(c bool) ServerOption 
    return func(o *options) 
        o.C = c
    


//新建服务
func NewServer(addr string, opt ....ServerOption) *Server 
    var opts options
    for _, o := opt 
        o(&options)
    
    
    return &Server
        opts: opts,
        addr: addr,
    

// 实例说明
server := NewServer("aaaa", Afunc(1), Cfunc(true))

 

以上是关于golang 服务或结构体可选参数的赋值的主要内容,如果未能解决你的问题,请参考以下文章

Dart语法之可选参数

Symfony 2 URL结构中的可选文化参数?

在 C# 4.0 中是不是应该使用重载或可选参数声明方法?

表达式树可能不包含使用可选参数的调用或调用

可选参数中的 Argparse 位置参数

当没有要指定的确切值“未定义”或“空”时,为 TypeScript 可选参数传递啥? [复制]