golang 基础 - 接口定义

demo4.go

package main

import "fmt"

type Student struct {
    Name string
    Age int
    Sex int
}

func (this Student) init(name string,age int,sex int){
    this.Age = age
    this.Sex = sex
    this.Name = name
    fmt.Println(this)
}

func main() {
    s := Student{}
    s.init("张高元",20,1)
    fmt.Println(s)
}

file

我们打印发现 init 方法初始化没有对 Student 这个 strcut 结构体的值做任何改变, 如果我们想要做到改变怎么做呢? 只需要在实现 接口 的方法 加上 * (指针) 即可.

package main

import "fmt"

type integer int

func (i integer) print() interface{}{
    return i
}

type Student struct {
    Name string
    Age int
    Sex int
}

func (this *Student) init(name string,age int,sex int){
    this.Age = age
    this.Sex = sex
    this.Name = name
    fmt.Println(this)
}

func (s Student) get() Student{
    return s
}

func main() {
    s := Student{}

    // Todo  (&s).init("张高元",20,1) 本来我们使用了指针需要这样写,但是 golang 为我们做了封装.所以我们不再需要自己写了.简写成下面的方式即可.

    s.init("张高元",20,1)
    stu := s.get()
    fmt.Println(stu)
    fmt.Println(s)

    // Todo 2
    var a integer
    a = 100
    _a := a.print()
    fmt.Println(_a)
}

file

发现值已经成功修改. golang 默认所有的值都是 传递的方式.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值