Go的函数选项模式

使用场景

在go的开发过程中,有的时候我们常常会碰到这样的场景:new一个结构体的时候参数不确定,但是我们又需要根据我们的需求来进行结构体的初始化赋值,那么碰到这样场景的时候,我们除了为不同的初始化方法写多个结构体的new方法之外,还可以运用Go 语言的函数选项模式来进行初始化赋值操作。

实际案例

package main

import (
	"fmt"
)

type Options struct {
   
	Age  int
	Name string
}

type OptionFunc func(*Options)

func NewOptions(opts ...OptionFunc) *Options {
   
	raw := &Options{
   }
	for _, opt := range opts {
   
		opt(raw)
	}
	return raw
}

你可能感兴趣的:(go,golang)