很早之前就想学go了,可惜一直没有机会,自己也实在学不进去,学了go除了应用于工作,go还能干什么?我为什么要去学go呢?go语言有什么好处?于是我的视角开始变得触类旁通起来。。。
go的出现
在go语言出现之前,开发者总是面临一种艰难的抉择,到底是使用执行速度快但是编译速度慢的语言(C++),还是使用编译速度快但是执行速度慢的语言(Java),或者说是开发难度较低、执行速度一般的语言呢?go的出现打破了这个僵局:编译迅速,执行速度快,且易于开发 这是一门完全开源的C系(C++,Java)编程语言,它会使C系的开发者感到十分亲切,并且因为go也同时拥有一些动态语言的特性而使得Python开发者在使用go的时候也非常容易上手
go发展的目标
go的主要目标是将静态语言的安全性和高效性与动态语言的易开发性相结合以达到均衡,做到全面迅速而不是艰难抉择
go对于网路通信以及并发有着极高的支持
设计者通过goroutine这种轻量级线程的概念来实现这个目标,从而更好地利用大量的分布式和多核计算机,也弥补了现存编程语言对于这方面的不足
快
一般情况下go构建一个程序只需要数百毫秒到几秒,极大地提升了开发者的生产力,同时使整个软件的开发过程更加紧凑,不必浪费大量时间在等待构建上 go的标准库编译时间一般在20秒以内
go的指导设计原则
go通过减少关键字的数量(25个),来简化编码过程中的混乱和复杂程度,这使得开发者们的代码非常容易阅读和理解
go语言的特性
go中没有类和继承的概念,它是通过interface来实现的多态
函数是go中的基本构件
go不允许所有的隐式类型转换,全部都是显式
go支持交叉编译,在windows上甚至可以运行在linux上开发的程序
语言的用途
首先它是一门后端语言
对于高性能分布式领域来说,go无疑是最好的选择之一,它能提供海量的并行支持,在高并发的情况下发挥巨大作用
当然也可以写页面
go也可以当作前端语言去实现展示,关于go的web框架也有很多...
游戏开发
例如...Godot Engine - Free and open source 2D and 3D game engine
我也就知道这一个了
本文正在参加技术专题18期-聊聊Go语言框架