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

1.定义结构

Go 复制代码
// 结构定义
type VideoFrame struct {
	id   int
	head []byte
	len  int64
	data []byte
}

2.实现结构方法

Go 复制代码
// 生成结构字段的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.定义接口

Go 复制代码
// 接口定义
type myInterface interface {
	getVideoFrame() *VideoFrame
	FrameCount() int
}

4.结构实现接口方法

Go 复制代码
//实现接口方法

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.使用接口与结构方法

Go 复制代码
//使用接口方法
	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 分钟前
Django下防御Race Condition
网络·后端·python·django
*.✧屠苏隐遥(ノ◕ヮ◕)ノ*.✧8 分钟前
C语言_数据结构总结4:不带头结点的单链表
c语言·开发语言·数据结构·算法·链表·visualstudio·visual studio
JohnYan22 分钟前
工作笔记 - btop安装和使用
后端·操作系统
极客代码23 分钟前
Linux IPC:System V共享内存汇总整理
linux·c语言·开发语言·并发·共享内存·通信·system v
我愿山河人间23 分钟前
Dockerfile 和 Docker Compose:容器化世界的两大神器
后端
掘金码甲哥23 分钟前
golang倒腾一款简配的具有请求排队功能的并发受限服务器
后端
重庆穿山甲28 分钟前
装饰器模式实战指南:动态增强Java对象的能力
后端
orangapple29 分钟前
一个差劲的软件设计
开发语言·c#
算法与编程之美32 分钟前
冒泡排序
java·开发语言·数据结构·算法·排序算法
Aphelios38033 分钟前
Java 学习记录:基础到进阶之路(一)
java·开发语言·学习·idea