文章目录
初识Golang
Golang简介
Golang的历史
- 2007年:Google的内部团队开始设计这门新语言
- 2009年11月:go语言公布,主要设计者是Robert Griesemer、Rob Pike和Ken Thompson,他们希望将当时编程语言的发展趋势(如高效的执行速度和高效的编译过程)与便于使用的语法规则相结合,同时解决其他编程语言中的一些常见问题,比如代码冗余和编译速度慢。
目前我使用的golang 1.19的版本是在2022年8月发布的,golang的版本号自2015年后,均为1.x版本类型,每年2个版本,具体可在官网查看具体版本迭代情况
golang的优缺点
golang的优点很多,主要为以下几点。
- 简洁的语法:Go语言的语法简单明了,易于学习和阅读。这使得新开发者可以快速上手,并且减少了维护大型代码库时的认知负担。
- 高效的并发模型:Go语言原生支持并发编程,通过goroutines和channels提供了一种轻量级的并发机制。这使得编写高并发程序变得简单,而且性能优异。
- 快速编译:Go语言的编译速度非常快,这对于大型项目和快速迭代开发来说是一个巨大的优势。
- 跨平台编译:Go语言可以轻松地交叉编译,支持多平台和多种操作系统,这使得开发跨平台应用变得非常方便。
golang的缺点主要集中在以下几点。
- 缺少泛型:尽管Go 1.18引入了泛型的支持,但在那之前,Go语言一直没有原生的泛型支持,这在某些情况下会导致代码重复和类型安全的问题。
- 错误处理:Go语言的错误处理机制通常涉及返回错误值,这可能导致代码中充斥着大量的错误检查,使得代码变得冗长。
- 包管理:尽管Go的包管理有所改进,但它仍然被认为是相对复杂的,特别是在处理依赖关系和版本控制方面。
- 运行时性能:虽然Go语言在大多数情况下性能都很优秀,但在某些领域,如数值计算和科学计算,它可能不如C或C++等语言
Golang的应用领域
目前Golang在Web应用后端开发、云基础设施建设(k8s)、DevOps、网络数据采集(监控)、自动化脚本等领域都有着广泛的应用。
安装golang
想要开始golang编程之旅,首先得在自己使用的计算机上安装golang开发环境,下面将以安装官方的golang为例,讲解如何在不同的操作系统上安装golang环境。
线上环境
goalng官网提供了可供训练的在线版WEB编辑器,可以在这个编辑器中直接运行相关的代码,完成官网的教程
Windows环境
可以在golang官方网站下载到golong的Windows安装程序(msi文件),直接安装即可。强烈建议选择自定义的安装路径并保证路径中没有中文。
可以通过打开cmd,输入go version命令查看安装是否成功
go version
Linux环境
Linux环境一般可以通过安装包安装的方式一键安装,ubuntu可以使用apt,centos可以使用yum等;也可以在golang的官方网站下载golang的tar包进行配置安装。
- 直接安装,版本可能偏旧
#centos
yum -y install golang
#ubuntu
apt install golang-go
- 下载golang tar包并解压缩到指定目录。
#展示为amd系统,也就是x86-64/系统的,若为arm系统,需要注意下载的版本
#获取包
wget https://golang.google.cn/dl/go1.22.2.linux-amd64.tar.gz
#解压到指定目录
tar -C /usr/local -xzvf go1.22.2.linux-amd64.tar.gz
#配置环境变量
export PATH=$PATH:/usr/local/go/bin
#验证
go version
macOS环境
macOS类似windons,下载安装包后安装就好了,同样要注意自身系统为amd还是arm,下载对应的安装包
运行golang程序
确认golang的版本
可以Windows的命令行提示符中键入下面的命令。
go version
在Linux或macOS系统的终端中键入下面的命令。
go version
import sys
print(sys.version_info)
print(sys.version)
编写golang源代码
可以用文本编辑工具(推荐使用Sublime、Visual Studio Code等高级文本编辑工具)编写golang源代码并用go作为后缀名保存该文件,代码内容如下所示。
package main
import "fmt"
func main() {
fmt.Println("Hello, 世界")
}
运行程序
切换到源代码所在的目录并执行下面的命令,看看屏幕上是否输出了"hello, world!"。
#在运行前若没有go.mod文件,往往需要先初始化mod
go mod init test
#编译并运行文件
go build main.go
go run main.go
代码中的注释
注释是编程语言的一个重要组成部分,用于在源代码中解释代码的作用从而增强程序的可读性和可维护性,当然也可以将源代码中不需要参与运行的代码段通过注释来去掉,这一点在调试程序的时候经常用到。注释在随源代码进入预处理器或编译时会被移除,不会在目标代码中保留也不会影响程序的执行结果。
- 单行注释 - 以//开头的部分
- 多行注释 - /*开头,*/结尾
package main
import "fmt"
/*
第一个Python程序 - hello, world!
向伟大的Dennis M. Ritchie先生致敬
Version: 0.1
Author: 骆昊
*/
func main() {
fmt.Println("Hello, 世界")
//fmt.Println("Hello, world")
}
golang开发工具
Sublime Text - 高级文本编辑器
-
首先可以通过官方网站下载安装程序安装Sublime Text 3或Sublime Text 2。
-
安装包管理工具。
- 通过快捷键Ctrl+`或者在View菜单中选择Show Console打开控制台,输入下面的代码。
- Sublime 3
import urllib.request,os;pf='Package Control.sublime-package';ipp=sublime.installed_packages_path();urllib.request.install_opener(urllib.request.build_opener(urllib.request.ProxyHandler()));open(os.path.join(ipp,pf),'wb').write(urllib.request.urlopen('http://sublime.wbond.net/'+pf.replace(' ','%20')).read())
- Sublime 2
import urllib2,os;pf='Package Control.sublime-package';ipp=sublime.installed_packages_path();os.makedirs(ipp)ifnotos.path.exists(ipp)elseNone;urllib2.install_opener(urllib2.build_opener(urllib2.ProxyHandler()));open(os.path.join(ipp,pf),'wb').write(urllib2.urlopen('http://sublime.wbond.net/'+pf.replace(' ','%20')).read());print('Please restart Sublime Text to finish installation')
- 在浏览器中输入 https://sublime.wbond.net/Package%20Control.sublime-package 下载包管理工具的安装包,并找到安装Sublime目录下名为"Installed Packages"的目录,把刚才下载的文件放到这个文件加下,然后重启Sublime Text就搞定了。
-
安装插件。通过Preference菜单的Package Control或快捷键Ctrl+Shift+P打开命令面板,在面板中输入Install Package就可以找到安装插件的工具,然后再查找需要的插件。我们推荐大家安装以下几个插件:
- SublimeCodeIntel - 代码自动补全工具插件。
- Emmet - 前端开发代码模板插件。
- Git - 版本控制工具插件。
- GoSublime - PEP8规范自动格式化插件。
- ConvertToUTF8 - 将本地编码转换为UTF-8。
VsCode - 微软的开发工具
VsCode是更好的选择,免费且轻量
-
首先可以安装 Visual Studio Code: 如果你还没有安装 VS Code,你可以从 Visual Studio Code 官网,下载并安装它。
-
安装 Go 插件: 打开 VS Code,点击侧边栏的扩展图标,搜索并安装 Go 插件,这个插件由 Go 团队维护,提供了 Go 语言的代码高亮、格式化、自动完成等功能
-
配置 Go 环境: VS Code 会自动检测 Go 的安装路径,但如果你需要手动配置,可以通过以下步骤:
- 打开 VS Code。
- 打开设置(通过 Ctrl+, 或点击左下角的齿轮图标)。
- 搜索 go.gopath 和 go.goroot,然后设置你的 GOPATH 和 GOROOT。
练习
-
在编辑器中尝试编写一个golang程序,打印“hello world”的中英文,并尝试将当前时间也一并打印。
package main import ( "fmt" "time" ) func main() { fmt.Println("Welcome to the playground!") fmt.Println("The time is", time.Now()) }
说明:输入上面的代码,可以实现练习