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())
相关推荐
小林敲代码778813 分钟前
记录一下IDEA中很多变量变色的方案
java·开发语言·spring boot·idea
Nturmoils14 分钟前
自增主键别只会 auto_increment,先把值从哪来讲清楚
数据库·后端
njsgcs23 分钟前
c# solidworks 工程图获得展开视图不在固定面螺纹特征的位置
开发语言·c#·solidworks
Slice_cy25 分钟前
基于node实现服务端内核引擎
前端·后端
qq_85730581941 分钟前
python语法
开发语言·python·算法
神奇小汤圆43 分钟前
什么是面向切面编程AOP?
后端
倾颜1 小时前
从手写 Runner 到 LangGraph:受控 Agent 接入 LangGraph
前端·后端·langchain
AI行业学习1 小时前
CC-Switch v3.16.1 官方下载 | 安装配置详细教程【2026.6.10】
java·开发语言·vue.js·python·mysql·eclipse·html
谁在黄金彼岸1 小时前
Lance模型解读
后端
神奇小汤圆1 小时前
深入理解MySQL事务隔离级别:MVCC机制与Next-Key Lock如何解决幻读问题?
后端