从PHP转到Go,看我就够了

628 阅读3分钟

我正在参与掘金创作者训练营第5期, 点击了解活动详情

如今微服务和云原生已经成为一种趋势。在火热的云原生领域,K8S和Docker以及许多的云原生组件,都是 Go 开发的。作为应用的基础,代码也是开源的,Go也就得到了许许多多人的关注。 所以现在越来越多的人转go语言。

我就是从PHP转到go上的。在两年前看到身边有小伙伴从php转到go开发后,就有转go的想法,只不过是当时没有太多的精力去专心学习,学完之后没有实践的机会,时间长了也就慢慢忘了,所以最后也就不了了之了。最近公司项目在做重构,然后老大就过来问我,有没有意向搞Go,我的回答是求之不得!转go开发陆陆续续也有一年多时间了吧,下面我来稍微总结下转go的一些体验吧。

PHP与GO的区别

1、Go是编译型语言,PHP是一种解释型语言。

2、Go是一种静态类型语言。PHP是一种动态类型语言。

3、PHP是面向对象的编程思想,而GO更像是面向包的设计思想。

4、其次就是一些语法层面上的区别:

a、go程序不用在每行的后面加分号;
b、go程序的函数括号: { 不能单独在一行,不然会报错
c、go程序的派生类型比较多,且对于数据类型的定位更为精准。比如intuintint8等,比起php只有一个int类型,go要严谨的多
d、go每增加一个新变量都是要显式声明的,比如 var a int = 50; 也可以用 a :=50;来声明。php使用变量是不用声明的。
e、go声明变量之后,不指明变量类型的话,则会自己推断所属类型。如果给出类型,例如 var x,y int 此处没有给出x,y指定的值,则默认为0bool类型的默认值为:false
f、在go中,全局变量声明之后,可以不被使用。如果是方法体中的局部变量,声明之后必须要在下面使用,不然会编译错误

GO语言关键特性

GO语言之所以厉害,是因为它在服务端的开发中,总能抓住程序员的痛点,以最直接、简单、高效、稳定的方式来解决问题。这里我们并不会深入讨论GO语言的具体语法,只会将语言中关键的、对简化编程具有重要意义的方面介绍给大家,跟随大师们的脚步,体验GO的设计哲学。

GO语言的关键特性主要包括以下几方面:

  • 并发与协程
  • 基于消息传递的通信方式
  • 丰富实用的内置数据类型
  • 函数多返回值
  • defer机制
  • 反射(reflect)
  • 高性能HTTP Server
  • 工程管理
  • 编程规范

相关书籍资料推荐

(1)语言基础

《Go编程基础》github.com/Unknwon/go-…

《go入门指南》github.com/Unknwon/the…

《GoWeb基础》github.com/Unknwon/go-…

《go库讲解》github.com/Unknwon/go-…

(2)进阶相关

书籍《go语言高级编程》 pan.baidu.com/s/1pi_TvlbY… 提取码:3ub3

书籍《go语言实战》 pan.baidu.com/s/1q2whQFye… 提取码: bp73

《go语言圣经》中文版github.com/golang-chin…

《Golang中国》golangtc.com

《Go语言中文网 》 studygolang.com

(3)我的专栏

go学习笔记:juejin.cn/column/7089…

相信 Go 在国内会越走越好!