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())
相关推荐
追逐时光者15 小时前
一个基于 ASP.NET Core 的开源、模块化、多租户应用框架和内容管理系统
后端·.net
板鸭〈小号〉15 小时前
Socket网络编程(1)——Echo Server
开发语言·网络·php
明天会有多晴朗15 小时前
C语言入门教程(第1讲):最通俗的C语言常见概念详解与实战讲解
c语言·开发语言·c++
爱上妖精的尾巴15 小时前
5-20 WPS JS宏 every与some数组的[与或]迭代(数组的逻辑判断)
开发语言·前端·javascript·wps·js宏·jsa
gopher951116 小时前
Go 语言的 panic 和 recover
开发语言·golang
豆沙沙包?16 小时前
2025年--Lc165--H637.二叉树的层平均值(二叉树的层序遍历)--Java版
java·开发语言
小蒜学长16 小时前
springboot二手儿童绘本交易系统设计与实现(代码+数据库+LW)
java·开发语言·spring boot·后端
李小白6617 小时前
Python文件操作
开发语言·python
xqlily17 小时前
Go语言:高效简洁的现代编程语言
开发语言·后端·golang
数据知道17 小时前
Go语言:数据压缩与解压详解
服务器·开发语言·网络·后端·golang·go语言