Go+ 结构体方法定义教程

举报
liuzhen007 发表于 2021/12/27 22:49:13 2021/12/27
【摘要】 目录Go+ 概述正文定义结构体定义结构体方法完整代码实例Go+ 概述Go+ 是一门融合工程开发的 Go、数据科学领域的 Python、编程教学领域的 Scratch,以 Python 之形结合 Go 之心,让工程师处理数据不需要学习新的开发语言,让初学者学习编程、开发作品的门槛更低的编程语言。正文前面的文章已经介绍了 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 int
    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 := &r
println("矩形面积: ", rp.area())
println("矩形周长:", rp.perim())























执行结果:

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

​亲自试一试​​!


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

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。