Go语言简介及环境配置
本文章主要讲解了Go语言的一些基本特性,以及Go语言编程环境的配置
Go语言简介
Go语言的学习方向/应用领域
Go语言,又称作Golang(Go language的简称),可以做区块链研发工,服务器端/游戏软件工程师,或者分布式,云计算。
学习Go语言以及其他编程语言的方法
- 高效愉快的学习。
- 先建立一个整体框架,然后再去打磨细节。
- 在实际工作中,要培养用到什么,能够快速学习什么的能力。
- 作为一个工科学生,要先know how,再know why。
- 软件编程是一门“做中学”的学科,不是学会了再做,而是做了才会。
- 适当的囫囵吞枣。
- 学习软件编程应该琢磨别人怎么做,而不是我自己认为应该怎么做的过程。
Golang的概述
Golang被创造的原因
- 计算机硬件技术更新频繁,性能提高很快。目前主流的编程语言发展明显落后与硬件,无法合理利用多核CPU的优势提升软件系统的性能。
- 软件系统复杂度越来越高,维护成本越来越高,目前缺乏一个足够简洁高效的编程语言。
- 企业运行维护着很多C/C++的项目,它们的运行速度虽然很快,但是编译速度很慢,还存在内存泄漏等一系列的困扰需要去解决。
Golang的特点
- 简介
Go语言保证了既能到达静态编译语言的安全和性能,又达到了动态语言开发维护的高效率,使用一个表达式来形容Go语言:Go=C+ Python,说明Go语言既有C静态语言程序的运行速度,又能达到Python动态语言的快速开发。
- 从C语言中继承了很多理念,包括表达式语法,控制结构,基础数据类型,调用参数传值,指针等,也保留了和C语言一样的编译执行方式及弱化的指针
- 引入包的概念,用于组织程序结构,Go语言的一个文件都要归属于一个包,而不能单独存在。
- 垃圾回收机制,内存自动回收,无需开发人员管理。
- 天然并发
- 从语言层面支持并发,实现简单
- goroutine,轻量级线程,可实现大并发处理,高效利用多核。
- 基于CPS并发模型(Communicating Sequential Processes)实现
- 吸收了管道通信机制,形成Go语言特有的管道channel,通过管道channel,可以实现不同的goroute之间的相互通信。
- 函数可以返回多个值。
- 新的创新,如切片slice,延时执行defer
//Go弱化指针演示
func testPtr(num *int) {
*num = 20
}
//Go语言函数返回多个值演示
func getSumAndSub(n1 int,n2 int)(int,int) {
sum := n1 + n2
sub := n1 - n2
return sum,sub
}
Go语言开发工具的介绍
- VSCode:支持Go语言语法高亮,也可以安装Go语言插件,还有智能提示,编译运行等功能。
- Sublime Text:可以免费使用,但是保存次数到一定数量会提示购买。
- Vim:它是从vi发展出来的文本编辑器,代码补全,编译及错误跳转等方便编程的功能很丰富,在程序员中被广泛使用。
- Emacs:传说中的神器,不仅是一个编辑器,因为它的功能强大,可以称它为集成开发环境。
- Eclipse IDE:开源免费,并提供GoEclipse插件
- LiteIDE:专门为Go语言开发的跨平台轻量级集成开发环境(IDE),是国人开发的。
- JetBrains全家桶:如Phpstorm,WebStorm,Pycharm(需要安装插件)以及Goland。
注:基础阶段建议使用VSCode
VSCode的安装和使用
按照自己的系统以及位数选择下载,建议选择安装包版。
Go语言开发环境-安装和配置SDK
SDK是什么
- SDK的全称为Software Development Kit(软件开发工具包)
- SDK是提供给开发人员使用的,其中包含了对应开发语言的工具包
Go语言SDK的下载
- 进入Go语言的官网,直接点击Download Go
- 选择对应的系统即可,一般下载安装版,请注意安装路径不要有中文,特殊符号,空格等。
- 安装完毕之后,打开cmd(如果安装到C盘请用管理员模式启动cmd),输入
go version
,如果可以正确显示版本号,那么Go语言的SDK安装完成。 - 如果需要在其他路径中建立文件夹编写Go语言代码,需要在系统变量中添加名为GOPATH,值为你的代码的路径的环境变量。
如果输入go version提示go不属于系统命令什么的,请重启cmd