【Golang】快速复习指南QuickReview(七)——interface
在C#中,接口是实现多态的方式之一,但是接口更侧重对象的能力,是一种规范。如果继承了接口,就必须按照接口的要求去实现这个接口。接口与接口之间是可以有继承。而golang
中的接口,是一组方法的集合体,duck-type programming
的一种体现。
专注于IT互联网,Web技术,Go语言(golang)、.Net,.Net Core,Node.js,前端框架、项目管理、软件架构
只有原创,没有转载,只有实践,才会成文。
在C#中,接口是实现多态的方式之一,但是接口更侧重对象的能力,是一种规范。如果继承了接口,就必须按照接口的要求去实现这个接口。接口与接口之间是可以有继承。而golang
中的接口,是一组方法的集合体,duck-type programming
的一种体现。
实际编程时,经常需要用相关的不同类型的数据来描述一个数据对象。C#中有类(Class
),结构(Struct
),当然类就不介绍了。Golang
中叫结构体(C
,C++
好像还是结构体),单词还是Struct
,无论是在Golang还是C#,struct都是一个值类型。
指针也就是内存地址,指针变量是用来存放内存地址的变量。学习C
语言,C++
经常使用指针,Golang
中也是指针使用的高频语言,C#
几乎没怎么用过。但是不代表C#
中不能使用指针。只是设计者并不希望开发者在不熟练的情况下使用指针,引发安全问题。
作为增强代码的复用性和可读性,函数必不可少。
……在上一篇【Golang】快速复习指南QuickReview(一)——字符串string的字符串翻转代码实现中,提到了切片,切片在golang
中是很重要的数据类型。说到切片,就不得不提数组,但是数组的长度是固定的并且数组长度属于类型的一部分,所以数组有很多的局限性。而切片(Slice
)是可变长度的,其实切片是基于数组类型做了一层封装,所以切片会指向一个底层数组。切片新增元素,当切片指向的底层数组能够容纳,则直接新增元素,当底层数组不能容纳新增的元素时,切片就会自动按照一定的策略进行“扩容”,此时该切片指向的底层数组就会更换。
切片有两个非常重要的属性,长度(len
),容量(cap
),前者是切片已经包含的元素数量,后者是切片的首指针(第一个元素)指向的底层数组索引至底层数组最后一个元素的长度。
春节期间,再加上疫情,博主学习了几天Golang,之后便缺乏使用。这几天看到一些Golang项目的源码,发现自己对Golang好像有点不熟,为了加深自己的记忆,艾宾浩斯记忆遗忘曲线告诉我们:要勤于复习。作为一个C#使用频率超高的.NET开发者,预备在接下来采用:C#与Golang的对比,以Golang为主,C#为辅的复习系列。既然是复习,面不会全部覆盖,所以这个系列并不是教程,如果想系统的学习,博主可推荐。
……golang作为21世纪的C++,增加了内存安全,GC(垃圾回收),结构形态及 CSP-style 并发计算,非常值得学习。Gin 是一个 go 写的 web 框架,具有高性能的优点,同样值得学习。文章为您介绍如何快速构建gin项目,是骡子是马拉出来遛遛。
……