golang结构与接口方法实现与交互使用示例

1.定义结构 

// 结构定义
type VideoFrame struct {
	id   int
	head []byte
	len  int64
	data []byte
}

2.实现结构方法

// 生成结构字段的get与set方法
// ================================
func (v *VideoFrame) Id() int {
	return v.id
}

func (v *VideoFrame) SetId(id int) {
	v.id = id
}

func (v *VideoFrame) Head() []byte {
	return v.head
}

func (v *VideoFrame) SetHead(head []byte) {
	v.head = head
}

func (v *VideoFrame) Len() int64 {
	return v.len
}

func (v *VideoFrame) SetLen(len int64) {
	v.len = len
}

func (v *VideoFrame) Data() []byte {
	return v.data
}

func (v *VideoFrame) SetData(data []byte) {
	v.data = data
}

//================================

3.定义接口

// 接口定义
type myInterface interface {
	getVideoFrame() *VideoFrame
	FrameCount() int
}

4.结构实现接口方法

//实现接口方法

func (v VideoFrame) getVideoFrame() *VideoFrame {
	mybyte := make([]byte, 32)
	copy(mybyte, "hello")
	vf := VideoFrame{
		id:   1111,
		head: mybyte,
		len:  128,
		data: []byte{01, 23, 45, 67, 89},
	}
	return &vf
}

func (v VideoFrame) FrameCount() int {
	return 999
}

5.使用接口与结构方法

//使用接口方法
	vf := VideoFrame{}
	fmt.Println("===> FrameCount:", vf.FrameCount())
	fmt.Println("===>VideoFrame:", vf.getVideoFrame())
	//使用结构方法
	fmt.Println("===>VideoFrame->ID:", vf.Id())
	vf.SetId(8888)
	fmt.Println("===>VideoFrame-ID:", vf.Id())

相关推荐

  1. golang结构接口方法实现交互使用示例

    2024-06-06 15:08:42       32 阅读
  2. golang结构结构方法实现示例

    2024-06-06 15:08:42       31 阅读
  3. golang接口/枚举/结构使用示例

    2024-06-06 15:08:42       28 阅读
  4. golang普通函数闭包函数使用示例

    2024-06-06 15:08:42       30 阅读
  5. golang通道(chan)选择(select)关闭(close)使用示例

    2024-06-06 15:08:42       33 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-06 15:08:42       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-06 15:08:42       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-06 15:08:42       82 阅读
  4. Python语言-面向对象

    2024-06-06 15:08:42       91 阅读

热门阅读

  1. 设计模式之观察者模式

    2024-06-06 15:08:42       34 阅读
  2. Go语言 一些问题了解

    2024-06-06 15:08:42       31 阅读
  3. BMC压力测试脚本

    2024-06-06 15:08:42       33 阅读
  4. 短剧出海的第一桶金

    2024-06-06 15:08:42       24 阅读
  5. Python怎么睡觉:深入探索Python中的暂停执行机制

    2024-06-06 15:08:42       25 阅读
  6. npm如何发布自己的插件包

    2024-06-06 15:08:42       38 阅读
  7. phpword使用TemplateProcessor对模板进行替换

    2024-06-06 15:08:42       31 阅读
  8. 自动化迁移和更新物体检测XML数据集

    2024-06-06 15:08:42       29 阅读
  9. 03-3.1.2 栈的顺序存储的实现

    2024-06-06 15:08:42       33 阅读
  10. AJAX

    AJAX

    2024-06-06 15:08:42      27 阅读
  11. leetcode刷题

    2024-06-06 15:08:42       29 阅读