• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Gointerface操作示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

特点:

    1. interface 是一种类型

       interface 是一种具有一组方法的类型,这些方法定义了 interface 的行为。go 允许不带任何方法的 interface ,这种类型的           interface 叫 empty interface

    2. interface 变量存储的是实现者的值

      interface 的重要用途就体现在函数参数中,如果有多种类型实现了某个 interface,这些类型的值都可以直接使用interface 的变量存储。

    3. 空的 interface

       interface{} 是一个空的 interface 类型,根据前文的定义:一个类型如果实现了一个 interface 的所有方法就说该类型实现了这个 interface,空的 interface 没有方法,所以可以认为所有的类型都实现了 interface{}。如果定义一个函数参数是 interface{} 类型,这个函数应该可以接受任何类型作为它的参数

package main

import "fmt"

type Animal interface {
    Eat(food string)
    Call() string
}

type Sheep struct {
    food string
}

// 实现接口方法
func (sheep *Sheep) Eat(food string) {
    sheep.food = food
}

// 实现接口方法
func (sheep Sheep) Call() string {
    fmt.Println("Sheep has eat: ", sheep.food)
    return "mm"
}

func main() {
    var sheep Animal

    // 两种写法一样
    // sheep = new(Sheep)
    sheep = &Sheep{food: ""}
    sheep.Eat("grass")
    sing := sheep.Call()
    fmt.Println("Sheep song: ", sing)
}

运行结果如下:

[root@wangjq test]# go run interface.go 
Sheep has eat:  grass
Sheep song:  mm

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
gobuild与goinstall发布时间:2022-07-10
下一篇:
go项目docker容器部署发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap