go圣经 ——方法

这里只是记录了自己学过一遍但是在圣经(狼吞虎咽)中又看到的新鲜玩意

我们又称之为选择器

package mainimport "fmt"type Rect struct {width, height float64
}// 定义一个方法来计算矩形的面积
func (r Rect) Area() float64 {return r.width * r.height
}func main() {rect := Rect{width: 3, height: 4}area := rect.Area() // 这里选择了 Rect 类型的实例 rect,并调用其 Area 方法来计算面积fmt.Println("Area:", area)
}

方法是与结构体相关联的函数,它允许我们从Rect类型的实例中选择并计算其面积

选择器中有多个同名的方法会报错

type ColoredPoint struct {Pointcolor.RGBA
}

比如都有max方法在Point和RGBA中,就会报错

我们来看下面两组代码:

var (mu sync.Mutex // guards mappingmapping = make(map[string]string)
)func Lookup(key string) string {mu.Lock()v := mapping[key]mu.Unlock()return v
}
var cache = struct {sync.Mutexmapping map[string]string
}{mapping: make(map[string]string),
}func Lookup(key string) string {cache.Lock()v := cache.mapping[key]cache.Unlock()return v
}

在第二组代码中我们将这两个变量联合起来变成了一个有mutex方法的 结构体变量,这是一个匿名的struct,同时我们又能使用mapping这个变量,使得结构更加统一

方法值和方法表达式

我们的选择器可以不需要接收器就可以被调用

就是说:

type Rocket struct { /* ... */ }
func (r *Rocket) Launch() { /* ... */ }
r := new(Rocket)
time.AfterFunc(10 * time.Second, func() { r.Launch() })
time.AfterFunc(10 * time.Second, r.Launch)

省略了上面的匿名函数

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/4690.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OpenCV-Python: 强大的计算机视觉库

文章目录 OpenCV-Python: 强大的计算机视觉库背景OpenCV-Python是什么?安装简单的库函数使用方法场景示例人脸检测和识别图像分割目标跟踪 常见问题和解决方案总结 OpenCV-Python: 强大的计算机视觉库 背景 OpenCV (Open Source Computer Vision Library) 是一个开…

如何修改php版本

我使用的Hostease的Windows虚拟主机产品,由于网站程序需要支持高版本的PHP,程序已经上传到主机,但是没有找到切换PHP以及查看PHP有哪些版本的位置,因此咨询了Hostease的技术支持,寻求帮助了解到可以实现在Plesk面板上找到此切换PHP版本的按钮…

基于Springboot+Vue的Java项目-火车票订票系统开发实战(附演示视频+源码+LW)

大家好!我是程序员一帆,感谢您阅读本文,欢迎一键三连哦。 💞当前专栏:Java毕业设计 精彩专栏推荐👇🏻👇🏻👇🏻 🎀 Python毕业设计 &am…

GDPU 算法分析与设计 天码行空5

一、【实验目的】 (1)熟悉动态规划算法的基本思想. (2)理解动态规划算法中子问题的划分和递推方程设计的基本方法. (3)熟悉矩阵链乘法的基本思想并编程实现。 二、【实验内容】 输入:矩阵链Ai…j的输入为…

Power BI:如何将文件夹批量Excel(多sheet页)文件导入?

故事背景: 业务同事想用Power BI分析近两年市场费用。 数据源全部是Excel文件,并且以每月一个Excel文件的方式,统一存放到同一文件夹下面。 重点,每张Excel文件会有多张sheet页,用区分每家分公司的费用信息。 目前…

Linux之进程间通信(二)

system V system V共享内存是内核中专门设计的通信的方式, 粗粒度划分操作系统分为进程管理, 内存管理, 文件系统, 驱动管理.., 粒度更细地分还有 进程间通信模块. 对于操作系统, 通信的场景有很多, 有以传送数据, 快速传送数据, 传送特定数据块, 进程间协同与控制以目的, 它…

分割字符串问题记录(特殊符号识别问题)

报错代码 String[] split power.split(""); 纠正后代码 String[] split power.split("\\"); 问题解析 String[] split power.split(""); 这段代码本身是符合Java语法规范的,它表示使用""作为分隔符来分割字符串powe…

数字信号的产生与检测——DSP学习笔记六

本专栏的博客的图片大部分来源于老师的PPT,本博客只是博主对于上课内容的知识结构的分析和梳理。 几种数字信号的产生 正弦波信号 多项式逼近(除了泰勒展开,还有一种方法是切比雪夫逼近法,感兴趣可以自己去了解一下) 查找表 核心思…

windows ubuntu sed,awk,grep篇,6.sed 保持空间和模式空间命令

目录 41.用保持空间替换模式空间(命令 x) 42.把模式空间的内容复制到保持空间(命令 h) 43.把模式空间内容追加到保持空间(命令 H) 44.把保持空间内容复制到模式空间(命令 g) 45.把保持空间追加到模式空间(命令 G) Sed 有两个内置的存储空间: z 模式空间:如你所知&…

<计算机网络自顶向下> Internet Protocol

互联网中的网络层 IP数据报格式 ver: 四个比特的版本号(IPV4 0100, IPV6 0110) headlen:head的长度(头部长度字段(IHL)指定了头部的长度,以32位字(4字节)为单位计算。这…

怎么理解JavaScript原型、原型链

原型 JavaScript被描述为一种基于原型的语言,也就是每一个对象都拥有一个原型对象。 当我们访问一个对象的属性时,它不仅仅该改对象上查找,还会到这个对象的原型上查找,甚至是到这个对象的原型的原型上查找,这样一层…

Java数组深度剖析:掌握数据结构的基石

引言 在编程世界中,数仅仅是一种数据类型,它是理解内存分配、多维数据处理以及性能优组像是构建复杂数据结构的基本积木。它们简洁、高效,是管理元素集的首选方式。在Java中,数组不化的关键。 这篇文章致力于深入探讨Java数组的各…

git出错、文件无法删除、文件无法访问、文件或目录损坏且无法读取 等相关问题处理

一、错误历程与解决方案 1. 在用idea时,突然出现 部分git的命令无法使用,提示错误 2. 尝试删除项目文件夹,重新从git拉取代码 3.发现无法删除文件夹,删除操作没有任何反应,但是可以对文件夹重命名。 4.重新clone g…

李沐70_bert微调——自学笔记

微调BERT 1.BERT滴哦每一个词元返回抽取了上下文信息的特征向量 2.不同的任务使用不同的特性 句子分类 将cls对应的向量输入到全连接层分类 命名实体识别 1.识别应该词元是不是命名实体,例如人名、机构、位置 2.将非特殊词元放进全连接层分类 问题回答 1.给…

QT c++ 代码布局原则 简单例子

本文描述QT c widget代码布局遵循的原则:实中套虚,虚中套实。 本文最后列出了代码下载链接。 在QT6.2.4 msvc2019编译通过。 所谓实是实体组件:比如界面框、文本标签、组合框、文本框、按钮、表格、图片框等。 所谓虚是Layout组件&#x…

Redis哈希槽和一致性哈希

前言 单点的Redis有一定的局限: 单点发生故障,数据丢失,影响整体服务应用自身资源有限,无法承载更多资源分配并发访问,给服务器主机带来压力,性能瓶颈 我们想提升系统的容量、性能和可靠性,就…

sentinel-1.8.7与nacos-2.3.0实现动态规则配置、双向同步

😊 作者: 一恍过去 💖 主页: https://blog.csdn.net/zhuocailing3390 🎊 社区: Java技术栈交流 🎉 主题: sentinel-1.8.7与nacos-2.3.0实现动态规则配置、双向同步 ⏱️ 创作时…

unity的特性AttriBute详解

unity的特性AttriBute曾经令我大为头疼。因为不动使用的法则,但是教程都是直接就写,卡住就不能继续学下去。令我每一次看到,直接不敢看了。 今天使用文心一言搜索一番,发现,恐惧都是自己想象的,实际上这个…

Kotlin泛型之 循环引用泛型(A的泛型是B的子类,B的泛型是A的子类)

IDE(编辑器)报错 循环引用泛型是我起的名字&#xff0c;不知道官方的名字是什么。这个问题是我在定义Android 的MVP时提出来的。具体是什么样的呢&#xff1f;我们看一下我的基础的MVP定义&#xff1a; interface IPresenter<V> { fun getView(): V }interface IVie…

Nodejs 第六十八章(远程桌面)

远程桌面 远程桌面&#xff08;Remote Desktop&#xff09;是一种技术&#xff0c;允许用户通过网络远程连接到另一台计算机&#xff0c;并在本地计算机上控制远程计算机的操作。通过远程桌面&#xff0c;用户可以在不同地点的计算机之间共享屏幕、键盘和鼠标&#xff0c;就像…