美文网首页
go设置任意属性

go设置任意属性

作者: 快感炮神 | 来源:发表于2020-09-14 14:10 被阅读0次

基本定义

// User  用户
type User struct {
    ID int  // id
    Gender int  // 性别
    Name string  // 名字
}

// NewUser 构造函数
// 利用可变参数传入属性方法
func NewUser(fs ...UserAttrFunc) *User {
    user := new(User)
    UserAttrFuncs(fs).apply(user)
    return user
}

属性处理

// UserAttrFunc 设置用户属性
type UserAttrFunc func(*User)
// UserAttrFuncs 属性设置方法切片
type UserAttrFuncs []UserAttrFunc

func (u UserAttrFuncs) apply(user *User) {
    for _, f := range u {
        f(user)
    }
}

// WithUserGender 设置性别
func WithUserGender(gender int) func(*User) {
    return func(user *User) {
        user.Gender = gender 
    }
}

// WithUserName 设置名字
func WithUserName(name string) func(*User) {
    return func(user *User) {
        user.Name=name
    }
}

调用

u: = Object.NewUser(
    Object.WithUserGender(1),
    Object.WithUserName("jingjing"),
)
fmt.Println(u)

优点是逼格高了,缺点是代码多了

相关文章

  • go设置任意属性

    基本定义 属性处理 调用 优点是逼格高了,缺点是代码多了

  • VsCode配置Golang开发环境,基于Go Modules

    本文参考 从零开始搭建Go语言开发环境 之前都是使用 LiteIDE 开发Go,在IDE里就能设置任意 GOPAT...

  • CSS----定位(相对、绝对、固定)

    定位: 指定的元素摆放到页面的任意位置 通过定位可以任意的摆放元素 通过position属性来设置元素的定位...

  • 定位

    定位: -定位指的就是将指定的元素摆放到页面的任意位置-通过定位可以任意的摆放元素-通过position属性来设置...

  • 定位

    定位: -定位指的就是将指定的元素摆放到页面的任意位置-通过定位可以任意的摆放元素-通过position属性来设置...

  • 定位、背景与表格

    定位: 定位指的就是将指定的元素摆放到页面的任意位置通过定位可以任意的摆放元素 通过position属性来设置元素...

  • 表单信息

    定位: 定位指的就是将指定的元素摆放到页面的任意位置通过定位可以任意的摆放元素 通过position属性来设置元素...

  • golang反射机制

    反射 反射就是程序能够在运行时动态的查看变量自己的所有属性和方法,能够调用他的任意方法和属性。 GO的反射基础是接...

  • 定位

    -定位指的就是将指定的元素摆放到页面的任意位置-通过定位可以任意的摆放元素-通过position属性来设置元素的定...

  • 定位

    定位:定位指的就是将指定的元素摆放到页面的任意位置通过定位可以任意的摆放元素通过position属性来设置元素的定...

网友评论

      本文标题:go设置任意属性

      本文链接:https://www.haomeiwen.com/subject/djzaektx.html