go语言中的接口怎么写


本文摘自php中文网,作者V,侵删。

go语言中接口的定义方式:【type interface_name interface {method_name1 [return_type]}】。接口把所有的具有共性的方法定义在一起,任何其他类型只要实现了这些方法就是实现了这个接口。

本文操作环境:Windows10系统、Go 1.11.2、thinkpad t480电脑。

Go 语言提供了另外一种数据类型即接口,它把所有的具有共性的方法定义在一起,任何其他类型只要实现了这些方法就是实现了这个接口。

举例:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

/* 定义接口 */

type interface_name interface {

   method_name1 [return_type]

   method_name2 [return_type]

   method_name3 [return_type]

   ...

   method_namen [return_type]

}

 

/* 定义结构体 */

type struct_name struct {

   /* variables */

}

 

/* 实现接口方法 */

func (struct_name_variable struct_name) method_name1() [return_type] {

   /* 方法实现 */

}

...

func (struct_name_variable struct_name) method_namen() [return_type] {

   /* 方法实现*/

}

实例:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

package main

 

import (

    "fmt"

)

 

type Phone interface {

    call()

}

 

type NokiaPhone struct {

}

 

func (nokiaPhone NokiaPhone) call() {

    fmt.Println("I am Nokia, I can call you!")

}

 

type IPhone struct {

}

 

func (iPhone IPhone) call() {

    fmt.Println("I am iPhone, I can call you!")

}

 

func main() {

    var phone Phone

 

    phone = new(NokiaPhone)

    phone.call()

 

    phone = new(IPhone)

    phone.call()

 

}

在上面的例子中,我们定义了一个接口Phone,接口里面有一个方法call()。然后我们在main函数里面定义了一个Phone类型变量,并分别为之赋值为NokiaPhone和IPhone。然后调用call()方法,输出结果如下:

1

2

I am Nokia, I can call you!

I am iPhone, I can call you!

相关推荐:golang教程

以上就是go语言中的接口怎么写的详细内容,更多文章请关注木庄网络博客!!

相关阅读 >>

Go语言接口

go 语言环境安装

Go语言有哪些包

Go语言数据类型

Go语言导包时“.”和“_”的区别是什么?

Go语言实现string转float的方法

Go语言是哪个公司的

golang和Go语言有区别吗?

学习Go语言(golang)编译过程预备知识

Go语言和kotlin的区别是什么

更多相关阅读请进入《Go语言》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...