GO语言学习-方法和接口

phlong999 · · 1366 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

方法:

指包含了接受者的函数,接受者可以是命名类型或者结构体类型的一个值或者是一个指针。

例:

type Food struct{

   color string

   taste string

}

func ( fruit Food) Eat()  string

{

    return fmt.Sprintf("%v,%v)", fruit.color, fruit.taset)

}

Food为结构体类型,Eat为Food类型的方法, Eat方法的接受者是Food类型的值(或指针 func ( fruit * Food) Eat()  string)

apple := Food{"red", "sweet"} 

 或

apple := &Food{"red", "sweet"}

方法使用

apple.Eat()

 

 

接口:

接口是一种类型,指定了一个方法集,所有方法为接口类型就被认为是该接口。

个人的理解接口是定义了一种功能,而方法是实现这种功能的方法。而不同的接受者有不同的方法来实现这个功能。

例:

type judge inerface{

    Eat() Food

}

定义了一个judge的接口,并包含了一个Eat()的方法

 

例程 

package main

import (
 "fmt"
)

type Food struct{
 color string
    taste string
}

type judge interface{
     Eat()string
}
func ( fruit *Food) Eat()  string{
    return fmt.Sprintf("%v,%v",fruit.color,fruit.taste)
}

type FoodTaste struct{
 taste string
}
func ( fruit *FoodTaste) Eat()  string{
    return fmt.Sprintf("%v",fruit.taste)
}

func main() {
 var a judge
 apple := Food{"red", "sweet"}
 lemon := FoodTaste{"sour"}
 
 a = &apple
 fmt.Println(a.Eat())
 a = &lemon
 fmt.Println(a.Eat())
}

 

 

 


有疑问加站长微信联系(非本文作者)

本文来自:CSDN博客

感谢作者:phlong999

查看原文:GO语言学习-方法和接口

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1366 次点击  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传