写点什么

Go+ 结构体方法定义教程

作者:liuzhen007
  • 2021 年 12 月 27 日
  • 本文字数:863 字

    阅读完需:约 3 分钟

Go+ 结构体方法定义教程

目录

Go+ 概述

正文

定义结构体

定义结构体方法

完整代码实例


Go+ 概述

Go+ 是一门融合工程开发的 Go、数据科学领域的 Python、编程教学领域的 Scratch,以 Python 之形结合 Go 之心,让工程师处理数据不需要学习新的开发语言,让初学者学习编程、开发作品的门槛更低的编程语言。

正文

前面的文章已经介绍了 Go+ 如何定义结构体,现在我们介绍一下如何为结构体定义方法。接下来我们就来了解一下这部分的一些内容。

定义结构体

首先,我们定义一个非常简单的结构体——矩形,包含两个最基本的属性宽和高,代码如下:

type rect struct {    width int,    height int}
复制代码

定义结构体方法

定义结构体的方法的时候,一共有两种方式,第一种是指针方式,我们定义一个计算矩阵面积的方法,代码实例如下:

func (r *rect) area() int {    return r.width * r.height}
复制代码

第二种是值方式,我们定义一个计算矩阵周长的方法,代码实例如下:

func (r rect) perim() int {    return 2*(r.width + r.height)}
复制代码

需要注意的是,两种方式可以自动切换,基本上是等效的,这样的好处就是避免了研发人员混淆二者。

完整代码实例

为了清楚的对比两种结构体方法的区别,下面通过一段代码来看一下,代码实例:

type rect struct {    width, height int}
func (r *rect) area() int { return r.width * r.height}
func (r rect) perim() int { return 2*(r.width + r.height)}
r := rect{width: 10, height: 5}println("矩形面积: ", r.area())println("矩形周长:", r.perim())
rp := &rprintln("矩形面积: ", rp.area())println("矩形周长:", rp.perim())
复制代码

执行结果:

矩形面积:  50
矩形周长: 30
矩形面积:  50
矩形周长: 30

​亲自试一试​​!


作者简介:😄大家好,我是 Data-Mining(liuzhen007),是一位音视频技术爱好者,前后就职于传统广电巨头和音视频互联网公司,具有丰富的音视频直播和点播相关经验,对 WebRTC、FFmpeg 和 Electron 有非常深入的了解,😄公众号:玩转音视频。同时也是 CSDN 博客专家、华为云社区云享专家、签约作者,欢迎关注我分享更多干货!😄


发布于: 刚刚
用户头像

liuzhen007

关注

敲代码,搞开发。 2021.05.01 加入

本人深耕音视频技术,走全栈路线,前后端通吃,兼顾各端与流媒体服务器。 博客主页地址:https://liuzhen.blog.csdn.net 微信公众号:玩转音视频 欢迎交流学习!

评论

发布
暂无评论
Go+ 结构体方法定义教程