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!
  • 相关阅读:
    mysql_db_sql_字段内容转化为小写
    Vue 单元测试 使用mocha+jest
    node express4 + 前端自动刷新
    vue-cli3 使用雪碧图
    稳赚的技术指标
    通信达日线买卖指标
    css+js调整当前界面背景音量
    canvas百分比加载动画
    处理安卓和ios当页面原生键盘弹出,输入框不显示
    js复制粘贴模板
  • 原文地址:https://www.cnblogs.com/UniqueColor/p/7427820.html
Copyright © 2011-2022 走看看