程序员宝藏库:
https://gitee.com/sharetech_lee/CS-Books-Store
Golang是最年轻的编程语言之一,在写这篇内容之前,目前稳定的Golang版本是1.19.5。
除此之外,它被认为是一种在开发者中很受欢迎的编程语言。它可以在许多平台和环境中构建和运行,有丰富且实用的内置包。
我使用Golang是因为它简洁明了,结构化,而且干净。
接下来,我会介绍为何选择Golang。我不打算将Golang与其他编程语言进行比较,因为我认为并没有什么意义和价值。
所以,我会从语言结构本身开始介绍,让你领会Golang的与众不同。
package mainimport ( "errors" "fmt")type Numbers []intfunc (n Numbers) Repeat() error { if n == nil { return errors.New("Numbers is nil") } for i, e := range n { fmt.Printf("%02d => %3d\n", i+1, e) } return nil}func main() { if err := Numbers(nil).Repeat(); err != nil { fmt.Println(err) } _ = Numbers([]int{1, 99, 100}).Repeat()}
我不会介绍所有的Go语言语法,但上面的代码是Golang代码的一个例子。
你现在不需要理解它,但你可以学习代码的结构,从package和import,到func main作为入口点,if-else和for循环作为控制结构之一,还涉及到types、nil、errors等等。
它是严格的类型化的,使用大括号作为范围,即使你只写了一行控制结构,使用nil而不是null(在这里节省了1个字符),并且只用分号来分隔语句,而不是结束它。
综上所述,Golang的语法很适合初学者,至少我是这么认为的。
你不用担心写出质量较差的代码语法,因为Golang不仅有完善的指南来教你如何写的更好,它也有自己的linter和formatter,来规范化你的代码。
Golang带来了自己内置的工具来帮你构建一个优秀的应用程序。
Linter? Formatter? Tester? 你说了算。
它也有一个垃圾收集器,原生支持并发,还支持在线运行。除此之外,Golang也有支持性的内置包。你可以在没有任何第三方模块的情况下编写一个网络应用、命令行界面应用,甚至是一个Web Assembly应用。
但是,如果你想创建一个Golang模块呢?让我们来谈谈这个问题。
你可以在本地和远程轻松地创建一个 Golang 模块。
只需执行go mod init <module-name>,然后像往常一样编码即可。
Golang模块开箱即支持git,你可以直接把你的Golang模块推送到git仓库,然后把它导入你的代码中。
例如,如果你想导入Postgres插件或数据库凭证模块,你只需输入git repo的名字就可以导入。
import ( "context" "database/sql" "log" "time" "github.com/ClavinJune/rotator" "github.com/lib/pq")
Golang将你的代码构建成二进制文件。
如果你在Windows上,它将把你的代码构建成可执行文件,如果你在Linux上,它将构建一个ELF文件,以此类推。
另外,你可以只用一个环境变量来控制构建。
假设你在一台Linux机器上,但你想为Windows创建一个可执行文件,只要告诉它就可以了。
$ lsmain.go$ GOOS=windows GOARCH=amd64 go build main.go$ file main.exemain.exe: PE32+ executable (console) x86-64 (stripped to external PDB), for MS Windows$ GOOS=darwin GOARCH=amd64 go build main.go$ file mainmain: Mach-O 64-bit x86_64 executable
你也可以创建一个Web Assembly模块。
$ GOOS=js GOARCH=wasm go build -o main.wasm main.go$ file main.wasmmain.wasm: WebAssembly (wasm) binary module version 0x1 (MVP)
在前面的内容里,我并没有面面俱到详细介绍Go语言的每一处细节,只是主观的介绍了一些我个人比较欣赏的亮点。
如果,这能够引起你对Go语言的兴趣,可以通过书籍或者教程去深入、系统的学习。
hello,大家好,我是Jackpop,重点大学本科毕业后保送到哈工大计算数学专业读研,有多年国内头部互联网、IT公司工作经验,先后从事过计算机视觉、推荐系统、后端、数据等相关工作。如果同学们在升学考研、职业规划、高考志愿、简历优化、技术学习等方面有困惑,欢迎大家前来咨询!