想必每个人在学习新事物之前,都会扪心自问:“我为什么要学习它呢?”
正如我们读四大名著
一般,也只有在您读过了四大名著
后,再细看中国几千年历史不就是天下大势合久必分,分久必合
,再者,便是与友数人相聚,席间您述说您通勤时所遇到有意思的事了,而您套用了说时迟,那时快
,乍然间,友人们无不张口结舌,双目紧盯着您,不错过任何细节,让您把这趣事讲完。
好吧,也有人不屑地说道:“四大名著
我没怎么看过,难不成这跟我为什么要学习 Golang 有关系嘛?”
当然没关系咯,我也没看全四大名著
,唯独就是红楼梦
只看了前五回,其余诸如三国演义
、水浒传
、西游记
。
其实熟读四大名著
对个人有利无害的,而我为什么要学习golang
,也是一样的道理。
本应该在准备学习Golang
,就要阐述自己为什么要学习它呢?难不成只是为了对秋码记录(qiucode.cn)
进行重构吗?不竟然是这样的,虽然我边学习 golang 边写下记录,按篇数有 34 篇,正是:“满纸荒唐言,都言作者痴。一把辛酸泪,谁解其中味。
”.
而那 34 篇是涵盖 golang 的基础语法,虽然 golang 版本使用的是 1.19,但却没能在那 三十来篇里讲述早在 golang 1.18 就出现的新功能 泛型
。
我之所以要学习 golang,不仅仅是为了重构秋码记录(qiucode.cn)
,若是那样的话,又何必去学习新的编程语言呢?
促使我去学习 golang ,是因为它是 区块链
的主要语言
,请注意这里的措辞,中国人对文字的描述是慎之又慎。
除了区块链
将 golang 列入为主要开发语言,那是有原因的,其不还不是因为 golang 天生支持并发等众多特性。还有我们熟悉的虚拟化容器
,docker
、k8s
都是使用 golang 开发的。
以太坊
客户端也是使用 golang,虽然其他语言的客户端也是有的。
而国内的区块链也大多是 golang 为主导的,虽然国内的都是联盟连
。
区块链
按其数据开放程度可以分为:公(有)链
、联盟连
、私(有)链
。
公链 : 是对外开放数据程度最高的一类区块链。任何人、组织/机构都可参与进来,且链上的所有数据记录公开、透明,任何人都能与之共识过程,不受任何机构控制,是完成去中心化
的区块链。杰出代表便是比特币
、以太坊
了。
联盟连 :由多个互相信任的组织共同参与,彼此间具有良好的合作关系。联盟链的开放程度介于公链和私链之间,写入、修改权限仍掌握在多个互信组织手中,被视为是部分去中心化的区块链。这个联盟可以是国与国,也可以是企业与企业、银行与银行之间合作的某种联盟。联盟链的参与方彼此信任程度高,验证效率快,交易成本较公链大大下降,同时数据的部分隐私又能得到很好的保护。联盟链上的信息与资源,只有该联盟的成员才可以共享,比较知名的联盟链如R3区块链联盟
、超级账本
。
私链 :又被称为内部链,它的开放程度很低,数据的写入、修改权限仅在少数人/组织手中,属于私有机构单中心网络。目前很多大型的公司集团都在开发自己的私链,它可以用于企业管理、财务审计,银行清结算等。
不管是公链还是私链,亦或是联盟连,golang都是区块链的主要开发语言。
通过上述讲解,知道golang可以应用在web后端服务
、区块链
、云计算
等领域。
虽然先前有人说golang中有这有那的不足,没有类、缺少泛型。而泛型的功能,golang也在1.18加入了,至于类吗,可以使用结构体
代替吗!
每种语言都有优缺点,不能拿另一个语言中有的功能,来质疑golang怎么没有呢,吐槽golang最厉害莫过于说它没有异常处理,这不就是那其他语言来比较吗!