码迷,mamicode.com
首页 > 其他好文 > 详细

关于kratos的底层赋值参考

时间:2021-03-31 12:16:53      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:config   func   out   color   conf   for   range   ret   setname   

package main

import (
    "fmt"
    "time"
)

func main() {
    s := NewServices(
        SetName("peter"),
        SetTimeout(time.Second*5),
    )

    fmt.Println("name:", s.conf.Name)
    fmt.Println("time", s.conf.Timeout)
}

type Option func(options *Config)

type Config struct {
    Name    string
    Timeout time.Duration
}

type Services struct {
    conf Config
}

func SetTimeout(t time.Duration) Option {
    return func(options *Config) {
        options.Timeout = t
    }
}

func SetName(name string) Option {
    return func(options *Config) {
        options.Name = name
    }
}

func NewServices(opts ...Option) Services {
    c := Config{}
    for _, op := range opts {
        op(&c)
    }
    s := Services{}
    s.conf = c
    return s
}

 

关于kratos的底层赋值参考

标签:config   func   out   color   conf   for   range   ret   setname   

原文地址:https://www.cnblogs.com/chongyao/p/14597998.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!