Go语言是Google2009年推出的语言,其被设计成一门应用于搭载 Web 服务器,存储集群或类似用途的巨型中央服务器的系统编程语言。如今,Go语言依然被像BAT这样的互联网三巨头公司广泛使用,从事互联网工作的人必须对其有清楚地认识,以下是对Go语言入门的基础知识大科普。
一、Go语言简介
1、什么是go语言?
2007年,受够了C++煎熬的Google首席软件工程师Rob Pike纠集Robert Griesemer和Ken Thompson两位牛人,决定创造一种新语言来取代C++, 这就是Golang。出现在21世纪的GO语言,虽然不能如愿对C++取而代之,但是其近C的执行性能和近解析型语言的开发效率以及近乎于完美的编译速度,已经风靡全球。特别是在云项目中,大部分都使用了Golang来开发,不得不说,Golang早已深入人心。而对于一个没有历史负担的新项目,Golang或许就是个不二的选择。
被称为GO语言之父的Rob Pike说,你是否同意GO语言,取决于你是认可少就是多,还是少就是少(Less is more or less is less)。Rob Pike以一种非常朴素的方式,概括了GO语言的整个设计哲学–将简单、实用体现得淋漓尽致。
很多人将GO语言称为21世纪的C语言,因为GO不仅拥有C的简洁和性能,而且还很好的提供了21世纪互联网环境下服务端开发的各种实用特性,让开发者在语言级别就可以方便的得到自己想要的东西。
2、golang语言特性
(1) 垃圾回收
内存自动回收,再也不需要开发人员管理内存。开发人员专注业务实现,降低了心智负担。只需要new分配内存,不需要释放。
(2)goroute天然并发
从语言层面支持并发,非常简单。使用一个go则在编译时会自动开启一个线程来执行后面的命令/函数/方法,不用像python需要先调用thread模块来开启线程goroute,轻量级线程,创建成千上万个goroute成为可能。基于CSP(Communicating Sequential Process)模型实现。
(3)多返回值
Go的函数可以有多个返回值
“`
func main() {
x,y:=p_fun(10,80)
// x,_ := p_fun(10,80) 多返回值函数时,只要一个返回值
fmt.Println(x,y)
}
//多返回值函数
func p_fun(a int,b int) (int,int) { //函数传入2个整型参数,返回2个值,都为int类型
sum := a+b
avg := (a+b)/2
return sum,avg
}
(4)go的“包”的概念
a.和python一样,把相同功能的代码放到一个目录,称之为包。
b.包可以被其他包引用。
c.main包是用来生成可执行文件,每个程序只有一个main包。
d.包的主要用途是提高代码的可复用性。
e.包的引用
Go在首行使用“package <包名>”来声明自己所在的包(主程序包为main包,也可以自定义包名),“import”引入其他的包,go自带的系统包所在的路径已经在“GOROOT”环境变量中设置好了.
可以使用“import”直接引入,而自己定义的包: package <包名> 在import导入时则需要相对路径:第三方包默在“GOROOT”和“GOPATH”环境变量所在的路径下的src目录下寻找.
(5)go文件编码规范
使用gofmt <go文件>使go文件内的代码更规范(缩进等格式更规范),使用gofmt -w <go文件>将原来的go文件修改的更规范。
以上就Go语言入门的基础知识大科普,对Go语言还有兴趣了解的小伙伴可以继续关注博学谷资讯,如果还想更加深入学习可以到博学谷官网咨询相关课程。
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
Go语言与区块链课程大纲分为四个阶段学习,主要内容:区块链主流语言:Go语言开发实战、区块链后端技术体系:Go语言高并发服务器开发、去中心化前端开发与web服务器开发、区块链密码学安全理论与开发等内容。
3888
2019-6-10 10:19:40
区块链技术早目前已经成功地风靡全球,区块链的繁荣,让许多人好奇,区块链开发语言有哪些?一般来说,几乎所有流行的编程语言,都可以在区块链开发中得到应用,比如Solidity、Java、C++、Javascript和Golang。那么,哪种语言更适合区块链开发呢?这些不同的区块链开发语言,被使用在不同的区块链项目和应用程序,不过Go语言通常被认为是区块链开发的主流首选语言。
3783
2019-10-21 11:18:01
“区块链”作为2019年度最火概念之一,出现的频率极高。区块链技术的本质是一个去中心化的数据库,这种数据库类似于一个账本,可以记录所有的已经发生过的交易,具有去中心化、不可篡改、无第三方的特点。那么,区块链技术培训难吗?我们又该如何学习呢?
922
2020-5-28 15:05:02
随着区块链技术和相关应用的不断发展,区块链技术涉及到计算机分布式P2P网络,计算机密码学,分布式账本,经济学以及社会学等多学科。区块链领域正在变得炙手可热,很多人看到了区块链的发展前景和空间,纷纷投身于区块链的学习中。那么,区块链课程需要了解哪些内容呢?
1263
2020-6-09 14:27:57
区块链要学多久才能从入门到精通?学习是潜移默化的过程,学多久取决于你对计算机知识等相关专业的背景,区块链用的技术其实都是现有技术的组合。分布式存储,非对称加密,哈希算法,博弈论,这些都要熟悉和了解。
1062
2020-7-24 16:59:18
¥59.9 进阶 109
¥299 进阶 125
免费 基础 1388
免费 基础 1434
¥399 进阶 123
扫描二维码,回复"区块链"获取90G资料包