golang 第四课 结构体(struct)、interface{}、方法(func)详解
发布日期:2021-05-14 20:12:10 浏览次数:12 分类:精选文章

本文共 2577 字,大约阅读时间需要 8 分钟。

���������������������

���������func���

��� Go ������������������������������������������������������������������������������������������������������������������������

  • ������������������������
    def func fn() {
    // ���������������
    // func funcName(arg type ...) ([arg] type ...) { // ���������������������������������������
    // }}
  • ������������������������
    def func fn1(arg1 int, arg2 int) (a int) {
    a := arg1 + arg2
    return
    }
  • ���������������������
    def func fn2(args ...int) {
    fmt.Printf("%T, %v\n", args, args)
    a := 0
    for _, k := range args {
    a += k
    }
    fmt.Println("a val:", a)
    }

���������interface���

��������� Go ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

  • ������������
    type It1 interface {
    Add(int) int
    Sub(int) int
    }
  • ���������������������
    type Num int
    func (num Num) Add(n int) int {
    a := int(num)
    a += n
    num = Num(a)
    return a
    }
    func (num Num) Sub(n int) int {
    a := int(num)
    a -= n
    num = Num(a)
    return a
    }
  • ���������������
    func Ad(num It1, n int) int {
    return num.Add(n)
    }
    func main() {
    a := 10
    num := Num(a)
    b := Ad(num, 10)
    fmt.Println("b:", b)
    fmt.Println("a:", a)
    fmt.Println("num:", num)
    }

���������������������������

���������������������������������������������������������������������

  • ������������������
    type It1 interface {
    Add(int) int
    Sub(int) int
    }
    type Num int
    func (num *Num) Add(n int) int {
    a := int(*num)
    a += n
    *num = Num(a)
    fmt.Println("ADD:", *num)
    return a
    }
    func (num *Num) Sub(n int) int {
    a := int(*num)
    a -= n
    *num = Num(a)
    return a
    }
  • ������������
    func main() {
    a := 10
    num := Num(a)
    fmt.Println("M ADDR : ", &num)
    b := Ad(&num, 10)
    fmt.Println("b:", b)
    fmt.Println("a:", a)
    fmt.Println("num:", num)
    }

������������struct���

��� Go ���������������������������������������������������������

  • ���������������
    type Person struct {
    Name string
    Age uint8
    Money int
    }
  • ������������
    func (person *Person) GetName() string {
    return person.Name
    }
    func (person *Person) AddIncome(money int) int {
    person.Money += money
    return person.Money
    }
  • ������������������
    func Str() {
    student1 := Person{
    Name: "zzh",
    Age: 18
    }
    fmt.Printf("stu1:%+v\n", student1)
    var student2 Person
    student2.Name = "zzh2"
    student2.Age = 19
    fmt.Printf("stu2:%+v\n", student2)
    AddUserMoney(&student1, 10)
    AddUserMoney(&student2, 20)
    fmt.Printf("stu1:%+v\n", student1)
    fmt.Printf("stu2:%+v\n", student2)
    }
  • ������������
    type Human interface {
    GetName() string
    AddIncome(int) int
    }
    func AddUserMoney(user Human, money int) int {
    return user.AddIncome(money)
    }
上一篇:go-zero框架threading包—安全运行goroutine
下一篇:第二课 golang的常量、枚举、类型的讲解

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2025年04月13日 22时49分20秒