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())
相关推荐
大树91几秒前
把 Java 项目从手动 SCP 升级到 Gitee Go 自动部署:一份踩坑实录
java·golang·gitee
4SAPI2 分钟前
2026年大模型API接入选型指南:企业与个人用户的架构、稳定性与成本考量
大数据·开发语言·数据库·人工智能·架构·php
lmy_loveF6 分钟前
go 切换go version 版本
开发语言·后端·golang
行者全栈架构师11 分钟前
Spring Boot + FFmpeg 视频批量处理实战:压缩、HLS切片与异步任务引擎
后端
小白快快跑哦11 分钟前
python-字符串全解(四):字符串方法
开发语言·python·字符串
用户3451381013413 分钟前
搭建一个springboot项目并整合其他中间件(更新中)
后端
Gopher_HBo15 分钟前
Cobra使用指南
后端
用户77139702070617 分钟前
ASP.NET Core Identity 从入门到实战:常见问题与解决方案
后端
用户2986985301418 分钟前
Python 实现文本文件与 Word 文档互转的两种方法
后端·python·api
Zane199422 分钟前
明明在赋值前读取,为什么还会报 UnboundLocalError?global 与 nonlocal 深挖
后端·python