初识Go语言(一)

       首先说说我为什么要去了解学习Go语言吧,首先在此之前我并没有接触过Go语言,其实主要原因是因为他的名字吧,(果然人不可貌相)当我第一次听到Go语言这个名词的时候我还以为这个Go是C语言中的Goto的Go,心想这样一种破坏编程结构的语言有什么好的呢?但是架不住朋友的安利,以及确实看到一些游戏公司在招这方面的程序员,就决定了解一下这门语言(真香了)。


下面来贴几个链接:

​​​​​地鼠文档 (topgoer.cn)

(Go语言的吉祥物是几只可爱的地鼠,所以这个网站的作者取名地鼠文档)

Go 语言的起源,发展与普及 - 地鼠文档 (topgoer.cn)

(菜鸡就乖乖的先从入门指南开始看吧)

​​​​​​go.dev

(Go语言的官网)

​​​​​​golang.org

(Go语言的编码规范)

作为一个同样的菜鸡初学者,我是从第二个链接开始了解Go语言的,里面的内容写的非常好也非常的完整易懂,我只是在阅读的过程中将其中我认为的精华部分或者我认为的难点部分整理出来方便日后复习Go语言。


Go语言的起源、发展与普及

起源

Go语言的起源用一个字来形容就是“牛”,是由一大群行业大牛联合开发的,其中随便拎一个出来都是独当一面的牛人。这也让我有了继续学下去动力。

优势

作为一门编程语言肯定免不了要和别的语言比较,(不然我们学他干嘛)那么Go语言的优势在哪呢?众所周知,C语言是执行速度快但是编译速度并不理想的语言;Java是编译速度较快但执行效率不佳的语言;而python是开发难度较低但执行速度一般的动态语言。

其实总结下来就是:别的语言优点和缺点都很明显,快速编译,高效执行,易于开发 最多只能占个一样。而我们的主角Go语言呢三个全占。(编译速度比之C语言甚至更快,执行速度能和C++相提并论,还拥有动态语言,谁能不爱呢)

那看到这里我已经能感受到Go语言的强大了,但是不仅如此,他甚至解决了内存泄漏问题!(相信面试过C#和C++的小伙伴们肯定都经历过被面试官提问一些有关于内存管理的问题,但是如果你使用Go的话就没有这个问题了!)虽然我对于C++也没有非常的熟练吧,但内存管理确实相当的折磨,Go语言的开发者认为这不应该是开发人员所需要考虑的问题,所以他们还是完成了这项艰难的人物(泪目了!)

为了让代码做到干净、整洁,Go语言只有25个关键字!( 译者注:代码是写给人看的,不是写给机器看的 )这个理念实在是太棒了!每次看一些代码的时候我总会怀疑这代码写的是不是给人看的(也可能是因为我是真的菜)

Go语言没有类和继承,通过接口来实现多态,是一个轻量级(让我想到了lua)的混合语言。有关键字var(关于var的话就仁者见仁,智者见智了,作为一个不常用python的程序员,其实是不怎么喜欢var这个关键字的,除非你能明确的知道你定义了个什么玩意,不然可能过一段时间就忘了,对于读程序的人来说也不是很友好,不过不得不说不考虑性能消耗无脑用var的话也是真的蛮爽的)而且完全支持UTF-8!前端时间用eclipse写java的时候就遇到了编码不统一的问题,注释中的中文和输出的中文中总有一个是乱码的格式,让我感到比较痛苦。

用途

Go语言提供了海量并行的支持,非常适合游戏服务端的开发!实现所谓的复杂事件处理(CET)而且还可以像使用脚本一样使用他来实现一般目标!

不过,由于实现了垃圾回收和自动内存分配,Go语言不适合来开发对实时性要求很高的软件。(其实和优点相比,这根本算不上是缺点)

特性缺失

  • 为了简化设计,不支持函数重载和操作符重载
  • 为了避免在 C/C++ 开发中的一些 Bug 和混乱,不支持隐式转换
  • Go 语言通过另一种途径实现面向对象设计(第 10-11 章)来放弃类和类型的继承
  • 尽管在接口的使用方面(第 11 章)可以实现类似变体类型的功能,但本身不支持变体类型
  • 不支持动态加载代码
  • 不支持动态链接库
  • 不支持泛型
  • 通过 recover 和 panic 来替代异常机制(第 13.2-3 节)
  • 不支持静态变量(static)

看到这里我其实又失望又兴奋,虽然很多我所熟悉的面向对象的特性他并不支持,但是我相信这可能都是有理由的,毕竟时代在进度,他们或许提供了更加简单,新颖的方法,这是我很期待看到的。

小结

  • 简化问题,易于学习
  • 内存管理,简洁语法,易于使用
  • 快速编译,高效开发
  • 高效执行
  • 并发支持,轻松驾驭
  • 静态类型
  • 标准类库,规范统一
  • 易于部署
  • 文档全面
  • 免费开源

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sky_down

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值