Golang 开发实战day13 - Reciver Functions
🏆个人专栏
🤺 leetcode
🧗 Leetcode Prime
🏇 Golang20天教程
🚴♂️ Java问题收集园地
🌴 成长感悟
欢迎大家观看,不执着于追求顶峰,只享受探索过程
Golang 开发实战day13 - 接收者函数
Golang 接收者函数是方法的另一种打开方式
在 Golang 中,方法是与结构体或接口相关联的一组函数。通常情况下,我们使用 func (receiver TypeName) methodName(parameters) 格式来定义方法,其中 receiver 是方法接收者,用于指定方法作用于哪种类型的数据。
接收者函数为我们提供了一种更灵活的定义方法的方式。它允许我们直接将方法定义在结构体或接口类型上,而无需使用 func 关键字。这使得代码更加简洁易读,也更加符合面向对象的编程理念。
1. 接收者函数的语法:
func (receiver TypeName) methodName(parameters) {// 方法体
}
其中:
- receiver 是方法接收者,用于指定方法作用于哪种类型的数据。
- TypeName 是接收者类型的名称。
- methodName 是方法名称。
- parameters 是方法参数列表。
- 方法体 是方法的具体实现代码。
2. 接收者函数的优点
- 简洁易读: 接收者函数可以直接定义在结构体或接口类型上,代码更加简洁易读。
- 符合面向对象的编程理念: 接收者函数更加符合面向对象的编程理念,方法直接与数据类型关联,提高了代码的可维护性。
- 方法链式调用: 接收者函数支持方法链式调用,使代码更加优雅。
3. 示例
项目中创建两个go文件,main.go, bill.go
3.1 main.go
func main() {mybill := newBill("哆啦A梦的账单")fmt.Println(mybill.format())
}
3.2 bill.go
// 定义一个bill结构
type bill struct {name stringitems map[string]float64tip float64
}// 定义一个账单方法
func newBill(name string) bill {b := bill{name: name,items: map[string]float64{"铜锣烧": 10.99, "提拉米苏": 30.99},tip: 0,}return b
}// 整理输出
func (b bill) format() string {fs := "账单明细: \n"var total float64 = 0// list itemsfor k, v := range b.items {fs += fmt.Sprintf("%v ...$%v \n", k+":", v)total += v}// totalfs += fmt.Sprintf("%v ...$%0.2f", "总金额:", total)return fs
}
3.3 输出
这回的输出有些不一样,直接在命令行中运行

4. 总结:
接收者函数是 Golang 中一种强大的工具,可以让我们更灵活地定义方法,提高代码的简洁性和可维护性。理解和掌握接收者函数的使用技巧,可以帮助你写出更加优雅、高效的 Golang 代码。
相关文章:
Golang 开发实战day13 - Reciver Functions
🏆个人专栏 🤺 leetcode 🧗 Leetcode Prime 🏇 Golang20天教程 🚴♂️ Java问题收集园地 🌴 成长感悟 欢迎大家观看,不执着于追求顶峰,只享受探索过程 Golang 开发实战day13 - 接收…...
ZL-016D多通道小鼠主动跑轮系统主要研究动物生活节律
简单介绍: 多通道小鼠主动跑轮系统是由动物本身自发运动来推动跑轮转动。在这种构型中,笼内动物长期活动的信息,如跑轮转动方向、转数、累计总行程等,能够使用编码器进行长度计记录。此装置由转轮组件、笼体、以及转动方向速度传…...
基于 LlaMA 3 + LangGraph 在windows本地部署大模型 (九)
LlaMA 3 系列博客 基于 LlaMA 3 + LangGraph 在windows本地部署大模型 (一) 基于 LlaMA 3 + LangGraph 在windows本地部署大模型 (二) 基于 LlaMA 3 + LangGraph 在windows本地部署大模型 (三) 基于 LlaMA 3 + LangGraph 在windows本地部署大模型 (四) 基于 LlaMA…...
计算机类的英语
Algorithm(算法)Binary code(二进制代码)Byte(字节)Cache(缓存)Database(数据库)Encryption(加密)Firewall(防火墙&#x…...
深⼊理解指针(5)
目录 1. 回调函数是什么?1.1 使用回调函数修改 2. qsort使⽤举例2.1 使⽤qsort函数排序整型数2.2 使⽤qsort排序结构数据按年龄排序2.3 使⽤qsort排序结构数据按名字排序2.4整体代码 3. qsort函数的模拟实现3.1 整型数组的实现3.2 结构体按名字排序实现3.3 结构体按…...
baomidou dynamic-datasource 强制查询sql走主库
场景 因为引用了baomidou主从数据源,因为业务场景特殊,需要查询语句强制走主库,把解决方案分享出来,帮助大家少走弯路 pom依赖 <dependency><groupId>com.baomidou</groupId><artifactId>dynamic-data…...
FPGA ov5640视频以太网传输
1 实验任务 使用DFZU4EV MPSoC 开发板及双目OV5640摄像头其中一个摄像头实现图像采集,并通过开发板上的以太网接口发送给上位机实时显示。 2 Verilog代码 2.1 顶层模块 timescale 1ns / 1ps //以太网传输视频顶层模块module ov5640_udp_pc (input sys_cl…...
论Java和C++方向选择
目录 1.难度2.就业压力3.岗位选择4.薪资待遇5.选择建议小结 1.难度 Java ,C, 测开,整体来说三个方向难度相当。 1.仅从语法角度来看,c 是掌控一切,知识都要懂一点,而java的特点在于省心,都封装…...
交通灯-设计说明书
设计摘要: 本设计基于单片机技术,旨在实现智能化交通信号控制,并具备夜间模式、禁止通行模式、同行模式切换以及车流量监测功能。通过按键S1和S2实现夜间模式和禁止通行模式的切换,确保夜间交通安全和禁止通行的需要。按键S3和S4…...
[前端] vue2的/deep/转化为vue3语法(笔记)
vue2语法示例 <style scoped lang"less">::v-deep .el-carousel__button {width: 8px;height: 3px;border-radius: 3px;}::v-deep .el-carousel__indicator.is-active button {width: 16px;} } </style>在 Vue 3 中,/deep/ 或 >>> …...
JavaScript基础(七)
isNaN //用来判断一个变量是不是一个非数字 不是来判断是不是number类型,而是判断当前值能不能转为number类型,OK?懂了。 还有同学不明白,来看实例: <script> //isNaN(非数字)→true (数字)→fal…...
【DevOps】Linux 内核网络子系统全面指南与性能调优
目录 一、Linux 内核网络子系统 1. Netfilter 主要特性 工作流程 2. Traffic Control (TC) 主要特性 工作流程 3. Socket 主要特性 工作流程 二、内核参数优化 1. net.ipv4.tcp_window_scaling 2. net.core.netdev_max_backlog 3. net.ipv4.tcp_rmem 和 net.ipv4…...
mybatis-plus-ui代码生成器
mybatis-plus-generator-ui 提供交互式的Web UI用于生成兼容mybatis-plus框架的相关功能代码,包括Entity,Mapper,Mapper.xml,Service,Controller等 ,可以自定义模板以及各类输出参数,也可通过SQL查询语句直接生成代码。 使用方法 引入mave…...
项目进度总结
完成了签到,老师发布签到并设置持续的时间,学生在规定的时间内可用签到码进行签到,超过时间将不在允许签到...
CheckStyle静态样式之道
优质博文:IT-BLOG-CN 在标准化的统一样式检查规范里,最为常用的统一样式工具是checkstyle插件,而不是国内阿里的代码规约插件。 【1】下载插件 【2】配置生效 配置生效及告警设置 【3】配置checkstyle.xml 官网地址 官网最新Releases 下面…...
2024中国振威化工装备展
2024上海国际化工设备展览会 第十六届上海国际化工装备博览会将于2024年11月19-21日在国家会展中心(上海)举办,预计参展企业1000多家,展览面积7万平方米,观众突破10万人次。展会设置石化装备、化工单元设备、化工环保…...
Docker操作之启动多个相同容器实例并nginx负载均衡
文章目录 前言 一、一些概念 1.Docker 2.nginx 二、操作步骤 1.构建compose.yaml 2.nginx配置 3.Docker compose命令 4.问题与解决 总结 前言 Docker对于开发、运维人员来说都很熟悉,但是对于开发人员来说,多数时候只需一个容器实例运行即可。…...
本地的git仓库和远程仓库
文章目录 1. 远程创建仓库2. 关联远程和本地代码3. 推送本地分支到远程4. 删除远程分支5. 分支重命名6. git pull rebase7. git merge master把本地文件删除了 1. 远程创建仓库 2. 关联远程和本地代码 上面创建完后会得到一个git仓库的链接,有SSH或者http的 http:…...
Google I/O 2024 干货全解读:Gemini AI 横空出世,智能未来触手可及!
Google I/O 2024 干货全解读:Gemini AI 横空出世,智能未来触手可及! 博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》…...
深入理解JVM:介绍JVM的工作原理,包括类加载机制,内存模型,垃圾回收机制等
类加载机制: JVM的类加载机制主要包括加载、连接(验证、准备和解析)、初始化、使用和卸载五个阶段。第一个阶段是加载需求的.class文件到内存中。第二个阶段是完成对字节码的验证,为类变量分配内存并初始化为对应类型默认值。第三…...
AI视频修复与字幕去除工具:突破硬字幕处理瓶颈的全流程解决方案
AI视频修复与字幕去除工具:突破硬字幕处理瓶颈的全流程解决方案 【免费下载链接】video-subtitle-remover 基于AI的图片/视频硬字幕去除、文本水印去除,无损分辨率生成去字幕、去水印后的图片/视频文件。无需申请第三方API,本地实现。AI-base…...
技术赋能音频自由:qmcdump开源工具破解QQ音乐加密格式全解析
技术赋能音频自由:qmcdump开源工具破解QQ音乐加密格式全解析 【免费下载链接】qmcdump 一个简单的QQ音乐解码(qmcflac/qmc0/qmc3 转 flac/mp3),仅为个人学习参考用。 项目地址: https://gitcode.com/gh_mirrors/qm/qmcdump …...
【Mojo+Python企业级混合编程实战指南】:20年架构师亲授3大高频场景落地方法论
第一章:Mojo与Python混合编程的企业级价值全景图Mojo 是一种专为 AI 原生系统设计的现代系统编程语言,兼具 Python 的表达力与 C/Rust 级别的性能。在企业级 AI 工程实践中,Mojo 并非旨在替代 Python,而是以“无缝互操作”为核心理…...
Qwen3-14B WebUI定制教程:更换主题、添加历史记录、导出对话功能
Qwen3-14B WebUI定制教程:更换主题、添加历史记录、导出对话功能 1. 准备工作与环境检查 在开始定制Qwen3-14B的WebUI之前,我们需要确保环境已经正确配置并运行。以下是准备工作步骤: 1.1 确认镜像版本与硬件配置 首先检查您的环境是否符…...
QMK Toolbox终极指南:5步完成机械键盘固件刷写与自定义
QMK Toolbox终极指南:5步完成机械键盘固件刷写与自定义 【免费下载链接】qmk_toolbox A Toolbox companion for QMK Firmware 项目地址: https://gitcode.com/gh_mirrors/qm/qmk_toolbox QMK Toolbox是一款专为机械键盘爱好者设计的开源固件刷写工具…...
Cursor 高级技巧:@符号、Chat 模式与多文件编辑
前言 经过前两天的学习,你已经掌握了 Cursor 的基本用法,能用 CmdK 做单文件修改,用 Tab 自动补全代码。但 Cursor 真正强大的地方,在于它构建了一套以 AI 为中心的上下文感知系统——让 AI 不再是"盲写",而…...
STM32控制步进电机复位的三种实用方法及适用场景分析
1. 步进电机复位的基本原理与挑战 步进电机作为工业控制和智能硬件中常见的执行元件,其复位功能直接关系到设备的重复定位精度。所谓复位,就是让电机轴回到预设的零位参考点。我在调试3D打印机时发现,哪怕只有0.1mm的复位误差,都…...
Qwen3.5-9B效果展示:128K长文档摘要+复杂代码生成真实案例集
Qwen3.5-9B效果展示:128K长文档摘要复杂代码生成真实案例集 1. 模型核心能力概览 Qwen3.5-9B是一款拥有90亿参数的开源大语言模型,在多个专业领域展现出卓越的性能。这个模型最令人印象深刻的是它处理复杂任务的能力,就像一位经验丰富的工程…...
Ostrakon-VL像素终端实操:自定义扫描任务清单配置方法
Ostrakon-VL像素终端实操:自定义扫描任务清单配置方法 1. 像素特工终端介绍 Ostrakon-VL像素终端是一款专为零售与餐饮场景设计的智能扫描工具,采用独特的8-bit像素风格界面,将复杂的图像识别任务转化为直观有趣的"特工任务"。基…...
Wan2.2-I2V-A14B参数详解:--output路径修改与/workspace目录结构说明
Wan2.2-I2V-A14B参数详解:--output路径修改与/workspace目录结构说明 1. 镜像概述与核心功能 Wan2.2-I2V-A14B是一款专为文生视频任务优化的私有部署镜像,基于RTX 4090D 24GB显存显卡深度调优。这个镜像最大的特点是开箱即用,内置了完整的运…...
