我命由我,不由天!


  • 搜索
prometheus docker golang linux kubernetes

Golang的interface

发表于 2021-01-03 | 分类于 golang | 0 | 阅读次数 246

如何理解go语言中的interface?

  1. interface是方法申明的集合
  2. 任何类型的对象实现了在interface接口中声明的全部方法,则表明该类型实现了该接口
  3. interface可以作为一种数据类型,实现了该接口的任何对象都可以给对应的接口类型变量赋值
package main
import (
	"fmt"
)
// 定义一个数据写入器
type DataWriter interface {
	WriteData(data interface{}) error
}
// 定义文件结构,用于实现DataWriter
type file struct {
}
// 实现DataWriter接口的WriteData方法
func (d *file) WriteData(data interface{}) error {
	// 模拟写入数据
	fmt.Println("WriteData:", data)
	return nil
}
// 接口可以作为数据类型传递,体现2,3
func Cprint(writer DataWriter){
	fmt.Println("Cprint")
}

func main() {
	// 实例化file
	f := new(file)
	// 声明一个DataWriter的接口
	var writer DataWriter
	// 将接口赋值f,也就是*file类型
	writer = f
	// 使用DataWriter接口进行数据写入
	err := writer.WriteData("data")
	if err != nil{
		fmt.Println("writeData err!")
		return
	}
	Cprint(f)
}
  • 本文作者: Dante
  • 本文链接: https://gaodongfei.com/archives/go-interface
  • 版权声明: 本博客所有文章除特别声明外,均采用CC BY-NC-SA 3.0 许可协议。转载请注明出处!
# golang
容器底层原理
go-reflect
  • 文章目录
  • 站点概览
Dante

Dante

119 日志
5 分类
5 标签
RSS
Creative Commons
0%
© 2023 Dante
由 Halo 强力驱动
|
主题 - NexT.Pisces v5.1.4
沪ICP备2020033702号