zoukankan      html  css  js  c++  java
  • Go 语言接口

    Go 语言接口

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

    实例

     1 /* 定义接口 */
     2 type interface_name interface {
     3    method_name1 [return_type]
     4    method_name2 [return_type]
     5    method_name3 [return_type]
     6    ...
     7    method_namen [return_type]
     8 }
     9 
    10 /* 定义结构体 */
    11 type struct_name struct {
    12    /* variables */
    13 }
    14 
    15 /* 实现接口方法 */
    16 func (struct_name_variable struct_name) method_name1() [return_type] {
    17    /* 方法实现 */
    18 }
    19 ...
    20 func (struct_name_variable struct_name) method_namen() [return_type] {
    21    /* 方法实现*/
    22 }

    实例

     1 package main
     2 
     3 import (
     4     "fmt"
     5 )
     6 
     7 type Phone interface {
     8     call()
     9 }
    10 
    11 type NokiaPhone struct {
    12 }
    13 
    14 func (nokiaPhone NokiaPhone) call() {
    15     fmt.Println("I am Nokia, I can call you!")
    16 }
    17 
    18 type IPhone struct {
    19 }
    20 
    21 func (iPhone IPhone) call() {
    22     fmt.Println("I am iPhone, I can call you!")
    23 }
    24 
    25 func main() {
    26     var phone Phone
    27 
    28     phone = new(NokiaPhone)
    29     phone.call()
    30 
    31     phone = new(IPhone)
    32     phone.call()
    33 
    34 }

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

    I am Nokia, I can call you!
    I am iPhone, I can call you!
  • 相关阅读:
    async中series的实现 javascript构件
    6.算法-计数排序
    5.算法-快速排序
    4.堆排序
    3.分治法研究-搜索数组中的最长连续递增子集
    字典树(Trie)学习笔记
    并查集笔记
    求树的遍历
    P1087 FBI树
    P5017 摆渡车
  • 原文地址:https://www.cnblogs.com/UniqueColor/p/7427820.html
Copyright © 2011-2022 走看看