1.golang环境安装
源码包下载:https://golang.org/dl/
安装过程比较简单,只需要找到对应操作系统的源码包进行相对应的解压和安装即可。
2.IDE
本人使用的的IDE是GoLand,其他比较常用的IDE有VsCode、VIm+Go插件等方式。
3.Go语言的一些特性
3.1 优势
(1)简单部署:
采用Go语言编写的.go文件可以直接编译成机器码文件,不依赖其他的库,即操作系统可以直接运行的文件。
(2)静态类型语言
Go语言属于静态类型的语言,他在编译过程中就可以检测出隐藏的大多数问题。
(3)并发控制方面
Go语言本身就支持并发控制,他能充分利用CPU多核特性,且切换成本很低。
(4)丰富的标准功能库
首先Go语言具有runtime系统调度机制,能自动完成一些GO相关的调度分配,其次,Go语言具有高校的GC垃圾回收。最后就是丰富的标准功能库,这些库已经可以完全支持开发一些常见的开发需求。
(5)学习成本低
Go语言仅仅只有25个关键词,这相对于其他语言属性很少的,其次Go的创世人也是C语言的创世人,所以他和C语言一样追求简洁,而且Go语言内嵌C语法支持。同时,他和Java、pyhton语言一样具有面对对象语言具有的特性(继承、封装、多态)。且其实一种跨平台的语言,在windows、linux等主流操作系统上都能很好的使用。
3.2 Go语言适合的领域与代表项目
(1)云计算基础设施领域,如docker、kubernetes、etcd等等。
(2)基础后端软件,如tidb、influxdb等等。
(3)微服务,如go-kit、micro等等。
(4)互联网基础设施,如hyperledger等等。
3.3 Go语言的一些缺点
(1)Go语言的包管理不够完善,大部分包都是在github,没有强大的团队和机构进行稳定更新和维护。
(2)Go语言不支持泛型。
(3)Go将所有的Exception都用Error进行处理。
(4)Go语言不能想C++那样完全兼容C。
总结:Go语言在适合的领域的优势还是很明显的,是否选择Go语言作为开发语言还是得看具体的开发需求。
4.第一个Go程序
学习大部分语言的第一个程序都是在控制台输出hello world!,我们也举hello world!为例:
package main //程序所在包名
import "fmt" //导入"fmt"功能库
//main 方法
func main () {
fmt.Println("hello world!")
}
输出结果:
hello world!
5.Go语言的变量定义方式
Go语言提供了多种变量的定义方式:
(1)声明一个变量,Go语言自动赋予默认值
package main
import "fmt"
func main() {
// 声明一个整型变量i,默认值为0
var i int
fmt.Println("A variable i value is ", i)
fmt.Printf("the type is %T\n",i)
}
输出结果:
A variable i value is 0
the type is int
(2)声明一个变量,并赋值:
package main
import "fmt"
func main() {
//声明一个变量i并赋值为10
var i int = 10
fmt.Println("A variable i value is ", i)
fmt.Printf("the type is %T\n",i)
}
输出结果:
A variable i value is 10
the type is int
(3)声明变量但不给出数值类型,Go语言自动推断数据类型:
package main
import "fmt"
func main() {
//声明一个变量i并直接赋值,不提供数值类型。
var i = 10
fmt.Println("A variable i value is ", i)
fmt.Printf("the type is %T\n",i)
}
输出结果:
A variable i value is 10
the type is int
(4)省去var关键词,直接声明变量并赋值,这是常用的声明变量的方式,但这种方法只在声明局部变量是支持(函数内部):
package main
import "fmt"
func main() {
// 声明一个变量i,并赋值10
i := 10
fmt.Println("A variable i value is ", i)
fmt.Printf("the type is %T\n",i)
}
(5)多变量声明可以有两种方式,分为单行写法和多行写法:
package main
import "fmt"
func main() {
// 多行写法
var (
i = 100
j = "aa"
)
fmt.Println("A variable i value is ", i)
fmt.Printf("the type is %T\n",i)
fmt.Println("A variable j value is ", j)
fmt.Printf("the type is %T\n",j)
}
两种方式得到相同的结果:
A variable i value is 100
the type is int
A variable j value is aa
the type is string
本系列的学习内容参考的B站视频Go语言快速入门教学视频8小时转职Golang工程师(如果你想低成本学习Go语言)_哔哩哔哩_bilibili,该视频适合有一定的编程语言基础,从其他语言转Go语言的学习者。