每一门语言配置好环境后的第一件事-----------向世界问候
本篇博客带大家公平的了解一下go语言相较其他语言的优势,以及go语言的一些特色
先打印一个hello world感受一下go语言的魅力
package main//每一个go文件都应该属于一个包,同一个包下的各函数、变量可以直接引用(不包只能调用大写字母开头的) import (//导包 "fmt"//标准的输入输出函数都在这里 "os" ) //在go语言中一般一行只放一句代码,末尾不用使用分号 func main(){ //直接向终端进行输出 fmt.Println("hello world") //向指定的输出流进行重定向(os.Stdout代表向终端进行输出,还可以是文件指针,http响应输出流......) fmt.Fprintln(os.Stdout, "hello world") }
(1)go语言有以下特点(做出总结)
自动垃圾回收(不用再动态的开辟、释放内存了)
更丰富的类型(指针、接口、通道、切片+基础类型=十分丰富灵活的编程语言)
函数多返回值(支持一次返回多个返回值)
错误的处理(这个模块相对来说还比较脆弱)
匿名函数与闭包(这点属于go的特色)
类型和接口(空接口可以接受任意类型,…interface{}作为形式参数可以传入任意个实际参数)
并发编程(并发是go语言的一个强项,因为go使用的是用户线程,相对来说并发需要的资源不多)
反射(go语言是静态语言,可以使用反射对程序进行配置,但效率会有所下降)
(2)go语言做web后端相对其他语言的优势及劣势 。
go语言为静态语言,项目经过预处理、编译、汇编、连接成为exe可执行文件
然后经过简单部署,就大工告成。
①相较python这种边编译边执行的语言来说
go语言执行效率高(运行时执行效率高,但是一般肉眼感觉不出来)
语法难易程度不相上下(python语法十分简洁,go语言也不逊色)
依据python的简洁语法,其更适合做数据分析、深度学习等类的工作
②相较java这一元老级别语言来说,go语言设计的时候考虑到了高并发
go语言开启同样并发量使用的资源要比java小的多(根本原因是设计语言使用的机制不同)
执行效率虽没有java快,但是仅仅差一丢丢(并发的优势完全可以弥补)
go web部署服务器极其简单,java web 项目往往需要寄托在tomcat等服务器上
Go语言原生的http包十分优秀,java有许多成熟的框架
总的来说这两个语言效率不相上下,go应该更适合未来的需求。java目前占有更大的市场。
两者都适合用来做web后端
③相较于c/c++祖师级别语言而言
go语言语法简洁度相对c/c++有大大的优化
go语言的效率当时设计的时候就是奔着赶上c语言去的,虽然没有赶上,但在目前处的高级语言内也算是名列前茅。
go语言有许多功能丰富的库,使用起来也比较方便。
技术ok c/c++无所不能(万岁!!!)
④相较于javascript而言
这两个就不进行比较了吧,一个前端语言一个后端语言
两者结合天下无敌(应该劝大家的是目前前后端分离,两个语言的工程师都应该写验证或者测试函数,或约定一方进行书写,避免非法分子有可乘之机)
(3)go语言适合做的事
理论来说也是无所不能,但是为了节约开发成本总的来说更适合做以下几件事
go web后端
区块链
游戏后端
一块加油一块努力,一起 go go go !!!