zoukankan      html  css  js  c++  java
  • golang之工厂模式

    说明:

      golang的结构体没有构造函数,通常可以使用工厂模式来解决这个问题

    如果包里面的结构体变量首字母小写,引入后,不能直接使用,可以工厂模式解决:

    ch1.go

    package ch1
    
    type student struct {
        Name string
        Score float64
    }
    
    func NewStudent(n string, s float64) *student {
        return &student{
            Name:  n,
            Score: s,
        }
    }

    main.go

    package main
    
    import (
        "fmt"
        "work/ch1"
    )
    
    func main() {
        var stu = ch1.NewStudent("tom", 88.88)
        fmt.Println(*stu)
        fmt.Println("name=",stu.Name, "score=",stu.Score)
    }

    如何student结构体中的Score变成首字母小写的score,那么可以定义一个方法,用于获取score的值:

    ch1.go

    package ch1
    
    type student struct {
        Name string
        score float64
    }
    
    func NewStudent(n string, s float64) *student {
        return &student{
            Name:  n,
            score: s,
        }
    }
    
    func (s *student) GetScore() float64 {
        return s.score
    }

    main.go

    package main
    
    import (
    "fmt"
    "work/ch1"
    )
    
    func main() {
        var stu = ch1.NewStudent("tom", 888.88)
        fmt.Println(*stu)
        fmt.Println("name=",stu.Name, "score=",stu.GetScore())
    }
    人生就是要不断折腾
  • 相关阅读:
    linux shell 总结
    python小结
    python与execl的读写
    利用burpsuits暴力破解登陆界面
    python之函数的使用
    Sublime text怎么识别input函数
    ping的禁止
    Hbase的配置与使用
    JAVA 利用反射自定义数据层框架
    JAVA实现网页上传头像
  • 原文地址:https://www.cnblogs.com/xiangxiaolin/p/12088559.html
Copyright © 2011-2022 走看看