golang 链式操作

来源:互联网 发布:南京弘历软件 编辑:程序博客网 时间:2024/05/21 18:47

链式操作

example:

stu.setName("stu01").setAge(18).print()

首先看一个正常的类型函数操作

package mainimport (    "fmt")type stu struct {    Name string    Age  int}func (p *stu) setName(name string) {    p.Name = name}func (p *stu) setAge(age int) {    p.Age = age}func (p *stu) print() {    fmt.Printf("name:%s age:%d\n", p.Name, p.Age)}func main() {    stu := stu{}    stu.setName("stu01")    stu.setAge(18)    stu.print()}

编译并运行:

$ go build go_dev/day12/exercise/link_fun$ ./link_funname:stu01 age:18

链式操作

其实是操作完毕后把该对象返回

稍微改造一下

package mainimport (    "fmt")type stu struct {    Name string    Age  int}func (p *stu) setName(name string) *stu {    p.Name = name    return p}func (p *stu) setAge(age int) *stu {    p.Age = age    return p}func (p *stu) print() {    fmt.Printf("name:%s age:%d\n", p.Name, p.Age)}func main() {    stu := stu{}    stu.setName("stu01").setAge(18).print()}

编译并运行:

$ go build go_dev/day12/exercise/link_fun$ ./link_funname:stu01 age:18
原创粉丝点击