Go使用结构体实现类(面向对象)

前置

package main
​
import ("fmt"
)
​
// 矩形结构体
type Rectangle struct {Length intWidth  int
}
​
// 计算矩形面积
func (r *Rectangle) Area() int {return r.Length * r.Width
}
​
func main() {r := Rectangle{4, 2}// 调用 Area() 方法,计算面积fmt.Println(r.Area())
}
 

type Person struct {name stringage  int
}type Stu struct {Personschool string
}func (p *Person) show() {fmt.Println(p.name+":{}", p.age)
}func main() {s := Stu{Person{"ydy", 19}, "nnu"}s.show()
}
 
type shape interface {Area() int
}
​
type Square struct {w int
}
​
type Rectangle struct {l, w int
}
​
func (s *Square) Area() int {return s.w * s.w
}
func (r *Rectangle) Area() int {return r.l * r.w
}
​
func main() {r := &Rectangle{10, 2}q := &Square{10}
​// 创建一个 Shaper 类型的数组shapes := []shape{r, q}// 迭代数组上的每一个元素并调用 Area() 方法for n, _ := range shapes {fmt.Println("图形数据: ", shapes[n])fmt.Println("它的面积是: ", shapes[n].Area())}
}

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

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

相关文章

幼儿园管理系统-收退费管理原型模版

幼儿园管理系统是专为幼儿园打造,涵盖学校儿童、职工人事、收费财务、后勤管理、办公教务、膳食分析、体检保健、文档管理等各方面内部管理的幼儿园专家系统。 本次分享给大家的是雅居乐教育集团幼儿园园务管理系统中“收退费管理”模块的设计文档。收退费管理是幼儿…

代码+视频,总结R语言常用的几种按条件转换数据的方法

在科学研究中免不了和数据打交道,收集到原始数据后我们经常需要对其进行清洗、转换才能得到我们需要的数据。 今天我总结了一下自己常用的一些多条件的数据转换方法,在临床中遇到问题能多一种选择,下面视频操作演示一下 总结R语言常用的几种按…

深度学习 --- stanford cs231 编程作业(如何在chrome中安装Google colab)

stanford cs231 编程作业(如何开始你的colab编程) 斯坦福231n的所有作业都要求在colab里面做,colab可以为你提供免费的云计算。实际上在他的官网中也有关于如何安装colab的详细说明视频。 https://youtu.be/DsGd2e9JNH4https://youtu.be/DsGd2e9JNH4 我这…

Unity入门理论+实践篇之Luna

创建世界的主角 父子物体 首先创建一个cube物体 可以观察到其在2D视角下的坐标为(0,0) 此时将cube物体拖拽到ldle_0下,如图所示,并将其坐标值改为(2,2) 此时再将ldle_0物体的坐标…

95.网络游戏逆向分析与漏洞攻防-ui界面的设计-ui的设计与架构

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 如果看不懂、不知道现在做的什么,那就跟着做完看效果,代码看不懂是正常的,只要会抄就行,抄着抄着就能懂了 内容…

基于jeecgboot-vue3的Flowable新建流程定义(二)

因为这个项目license问题无法开源,更多技术支持与服务请加入我的知识星球。 接上一节 4、编辑好后进行保存,保存代码如下: /*保存流程定义*/const save (data: any) > {//console.log("save data", data); // { process: {..…

博客增长与数据分析:不可不知的 6 大策略

CSDN 的朋友你们好,我是何未来,一个热爱编程和写作的计算机本科生,今天给大家带来专栏【程序员博主教程(完全指南)】的第 11 篇文章“分析和追踪博客表现”。本篇文章为你揭示了如何通过数据洞察来优化你的技术博客&am…

-bash: locate: 未找到命令(解决办法)

-bash: locate: 未找到命令的解决办法 一、解决办法二、什么是locate三 、locate命令的具体用法 一、解决办法 CentOS7默认没有安装locate命令,安装方式如下: 执行以下命令进行安装: yum install mlocate用 updatedb 指令创建 或更新locate …

数学建模--LaTeX基本介绍和入门

1.引言 (1)上次我们介绍到了我们这个团队第一次参加这个数学建模比赛,就是这个电工杯,我是一名论文手,我们在这个下午也是对于这个比赛过程中出现的问题做了相应的分析,每个人也是进行了反思,知…

Tomcat源码解析(七):底层如何获取请求url、请求头、json数据?

Tomcat源码系列文章 Tomcat源码解析(一):Tomcat整体架构 Tomcat源码解析(二):Bootstrap和Catalina Tomcat源码解析(三):LifeCycle生命周期管理 Tomcat源码解析(四):StandardServer和StandardService Tomcat源码解析(五)&…

最大连续1的个数(滑动窗口)

算法原理: 这道题大眼一看是关于翻转多少个0的问题,但是,如果你按照这种思维去做题,肯定不容易。所以我们要换一种思维去做,这种思维不是一下就能想到的,所以想不到也情有可原。 题目是:给定一…

Vue3:动态路由+子页面(新增、详情页)动态路由配置(代码全注释)

文章目录 实现思路调用后端接口获取用户权限获取页面权限动态绑定到路由对象中动态添加子页面路由 实现思路 emm,项目中使用动态路由实现根据后端返回的用户详情信息,动态将该用户能够访问的页面信息,动态生成并且绑定到路由对象中。但是后…

如何从清空的回收站中恢复已删除的Excel文件?

“嗨,几天前我删除了很多没有备份的Excel文件。回收站已清空。当我意识到我犯了一个大错误时,所有的Excel文件都消失了,回收站里什么都没有。清空回收站后是否可以恢复已删除的 Excel 文件? 回收站是一种工具,可让您在…

【openlayers系统学习】4.2Mapbox 样式渲染图层

二、Mapbox 样式渲染图层 显然我们目前的地图需要一些样式。 VectorTile​ 图层的样式与 Vector​ 图层的样式工作方式完全相同。那里描述的样式在这里也适用。 对于这样的地图,创建数据驱动的样式(对矢量图层操作)非常简单。但矢量切片也用…

单兵组网设备+指挥中心:集群系统技术详解

一、单兵设备功能特点 单兵组网设备是现代通信技术的重要成果,旨在为单个作战或工作单元提供高效的通信和数据传输能力。其主要功能特点包括: 1. 便携性:设备轻巧,便于单兵携带和使用,适应各种复杂环境。 2. 通信能…

PHP之fastadmin系统配置分组增加配置和使用

目录 一、实现功能:fasttadmin实现添加系统配置分组和添加参数、使用 二、添加分组 三、配置分组参数 四、最终存储位置 五、获取配置参数 一、实现功能:fasttadmin实现添加系统配置分组和添加参数、使用 二、添加分组 在字典配置中找到分组对应键值…

linux系统——top资源管理器

在linux系统中,有类似于windows系统中的资源管理器,top用于实时的监控系统的任务执行状态以及硬件配置信息 在linux中,输入top命令,可以进入相应界面,在此界面可以使用一些指令进行操作 如,输入z 可以改变…

终端安全管理系统、天锐DLP(数据泄露防护系统)| 数据透明加密保护,防止外泄!

终端作为企业员工日常办公、数据处理和信息交流的关键工具,承载着企业运营的核心信息资产。一旦终端安全受到威胁,企业的敏感数据将面临泄露风险,业务流程可能遭受中断,甚至整个企业的运营稳定性都会受到严重影响。 因此&#xff…

【EVI】Hume AI 初探

写在前面的话 Hume AI宣布已在B轮融资中筹集5000万美元,由前Google DeepMind研究员Alan Cowen创立并担任CEO。该AI模型专注于理解人类情感,并发布了「共情语音界面」演示,通过语音对话实现互动。从 Hume AI 官网展示的信息,EVI 能…

力扣刷题--747. 至少是其他数字两倍的最大数【简单】

题目描述 给你一个整数数组 nums ,其中总是存在 唯一的 一个最大整数 。 请你找出数组中的最大元素并检查它是否 至少是数组中每个其他数字的两倍 。如果是,则返回 最大元素的下标 ,否则返回 -1 。 示例 1: 输入:n…