interface 实现简单的print功能

第一步,新建立 test/testInterface.go 简单实现print功能的基本框架

package testInterface

type PrintMethod interface {
    OwnPrintMethod()
}
// 形参是接口类型,只要实现了接口的方法即可使用
func MyPrintMethod(pm PrintMethod) {
    pm.OwnPrintMethod()
}

第二步:使用方法,只要Book,Sentense实现接口方法OwnPrintMethod即可使用定义好的接口

package main

import (
    "fmt"
    "goweb/test"
)

// 定义Book 结构体
type Book struct {
    Content string
}

// 定义结构体
type Sentense struct {
    Content string
}

// 实现接口方法
func (b Book) OwnPrintMethod() {
    fmt.Println(b.Content)
}

// 实现接口方法
func (s Sentense) OwnPrintMethod() {
    fmt.Println(s.Content)
}

func main() {
    fmt.Println("start \n")

    // 初始化赋值
    book := Book{Content:"this is book"}

    // 初始化赋值
    sentense := Sentense{Content:"this is sentense"}

    testInterface.MyPrintMethod(book)
    testInterface.MyPrintMethod(sentense)

    fmt.Println("\n end \n")
}

这里充分体现了使用者定义的哲学,Book和Sentense分别定义了自己的Print模式,我们设计的Print模块负责基本功能的实现

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Python语言特性 1 Python的函数参数传递 看两个如下例子,分析运行结果: 代码一: a = 1 def...
    时光清浅03阅读 502评论 0 0
  • Python语言特性 1 Python的函数参数传递 看两个如下例子,分析运行结果: 代码一: a = 1 def...
    伊森H阅读 3,080评论 0 15
  • importUIKit classViewController:UITabBarController{ enumD...
    明哥_Young阅读 3,861评论 1 10
  • 《金文成〈中庸〉学习笔记10》 今天是戊戌年乙丑月辛未日,腊月廿九,2019年2月3日星期日。 【《中庸章句》中者...
    金吾生阅读 393评论 0 0
  • 前言:想到很久没有去海边了,于是抛掉任何犹豫,心里只有一个念头:我一定要去海边逛逛。 1. 犹豫和决心之间只差行动...
    杉子霜潋阅读 1,307评论 2 4