GO语言学习-方法和接口
2014-12-16 10:59
1116 查看
方法:
指包含了接受者的函数,接受者可以是命名类型或者结构体类型的一个值或者是一个指针。
例:
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())
}
指包含了接受者的函数,接受者可以是命名类型或者结构体类型的一个值或者是一个指针。
例:
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())
}
相关文章推荐
- Go语言学习笔记(六)-方法和接口
- Go 语言中的方法,接口和嵌入类型
- GO语言基础学习------方法_1
- go语言学习笔记---非入侵式接口设计探究
- Go 语言中的方法,接口和嵌入类型
- go语言[7] 函数,方法和接口
- Go语言学习九:接口、错误处理
- 9.笔记go语言——方法和接口
- [Go语言]从Docker源码学习Go——init()方法和identifier首字母大小写区分
- Go语言学习(十五)面向对象编程-接口
- Go语言学习笔记(五)方法
- go语言学习-数组切片的创建和使用方法
- Go语言 6 结构体、方法和接口
- go语言学习笔记-接口学习
- Go语言中接口组合的实现方法
- GO语言学习笔记3(函数接口并发)
- Go语言中的方法、接口和嵌入类型详解
- Go 语言中的方法,接口和嵌入类型
- Go语言学习笔记---接口
- 更灵活的定位内存地址的方法04 - 零基础入门学习汇编语言35