栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Go语言

Go语言面向对象编程(1)-实现原理

Go语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Go语言面向对象编程(1)-实现原理

Go面向对象编程 一、前言

​ 如果你沉迷于Python的简约代码风格,同时痴迷于C指针的特性,那么你会瞬间爱上Go。Python的代码风格简约,但作为一门动态语言,性能优化需要花费不少的努力,内存管理也存在麻烦。

​ Go语言的代码风格简约,性能强大,有着如指针、接口等诸多迷人的特性,其中它的面向对象形式也很独特。

二、Go面向对象的实现

​ Go的面向对象主要依赖于struct结构体,首先自定义结构体(相当于一个自定义类,在Go中作为一个命名类型)的属性,再通过向结构体添加方法集(成员函数)的形式实现面向对象。

1. struct结构体

​ struct类型是Go语言自定义类型的普遍形式,是Go语言类型的扩展的基石,也是Go语言面向对象承载的基础。

​ struct类型字面量的声明格式如下:

type xxx struct {
    val1 type1
    val2 type2
}
2. 类方法

​ Go语言的类型方法是一种对类型行为的封装。Go的类方法非常纯粹,可以看成特殊类型的函数。

3.一个实例–链表

​ 通过Go语言的面向对象实现链表。

(1)自定义链表节点,包含值和指向下一节点的节点指针。

type Node struct {
	 val int
	 nxt *Node
}

(2)为类型封装方法,如添加遍历打印链表节点值的方法。

​ 其中head相当于类的实例自身(类似于python的self,C++的this)

func (head Node) Print(){  // 为Node类型添加的方法。
	for temp:= &head; temp != nil; temp = temp.nxt{
		fmt.Print(temp.val, " ")
	}
	fmt.Println()
}
4.注意事项

(1)对类型方法的封装需要在同一个包完成,如上面的Node的定义和Print()方法的实现需要在同一个包中定义。

(2)类型方法的调用存在自动转换的机制,如值调用和指针调用的转换,具体会在下周的文章讲述,敬请期待…

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/908261.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号