今天我们聊聊Go语言。这玩意最近挺火,不少人刚刚接触编程,也往往听别人提起。可Go语言到底咋上手?这篇东西就带你过过基础,帮你一脚踢开Go语言的门。
安装Go环境
头一件事,肯定是要把Go给装上。这事不复杂,官网上有各个系统的东西,你选自己用的系统下载就行。安装包一步一步按提示走,装完了,打开终端,打一句go version,要是看到版本号出来了,说明你装的没问题。
第一个Go程序
环境有了,来写个最简单的程序,感受一下它咋跑起来。弄个文本文件,名字就叫hello.go,里头这么写:
go
package main
import "fmt"
func main() {
fmt.Println("你好,世界!")
}
写好了,存了。进终端,来到这个文件夹,敲go run hello.go,如果看到"你好,世界!"蹦出来,你这程序就算跑成功了。搞编程的,看见自己第一行代码出效果,总有种踹开大门的感觉。
Go语言的基本构造
来说下刚才的代码吧。那个package main,它意思是这个文件属于一个叫main的包,没啥复杂。import "fmt"的意思是,你得用一个叫fmt的东西,这玩意儿是格式化输入输出的包,基本上输出点啥都得用它。func main()那是你的主函数,你的程序从这儿开始跑。fmt.Println就把"你好,世界!"打屏幕上。这都学会了,再往下看看。
变量与类型
Go里面的变量整法特别简单。想要声明一个变量,不用多绕弯,直接上。
go
var x int = 10
y := 20
这x咱是用了完整的声明法,后面那个y,咱图省事用了:=,Go可以自动识别类型。没有那么多绕弯子的事。所谓大道至简,Go的本事就在这。
简单吧?要几个变量就弄几个,随时声明随时用。你还不用担心搞错了类型,像int, float64, string这些常见类型早就弄好了,没啥幺蛾子。
控制结构
聊到控制结构,让你折腾点判断或者循环。简单的例子:
go
if x > 10 {
fmt.Println("大了!")
} else {
fmt.Println("小了!")
}
for i := 0; i < 10; i++ {
fmt.Println(i)
}
这些语法看看也就知道了,没啥花哨的,该干啥讲得清楚,不会玩头晕的。
函数的玩法
写程序常常要写函数,Go当然也能弄。就是个func随你组合点啥。喜欢简单化搞个返回值啥的,就把功能封起来方便用。例如:
go
func add(a int, b int) int {
return a + b
}
这个函数接收俩整数,给返回来一个和,这相信自己动手搞了一看也就懂了。返回多个值?也能行,直接多列几个就行。这类实惠的地方还不止这点。
go
func swap(a, b string) (string, string) {
return b, a
}
这能一股脑给你返回来一堆东西,我们叫这种为多个返回值。用它干活够直接,用户也没废话。
协程与通道
接下来得提提Go最红的两大法宝,一个是协程(goroutine),一个是通道(channel)。这东西的奇妙之处在于高并发,这讲意思点让你的程序能同时跑多个任务。我们可以这试试:
go
go func() {
fmt.Println("并发真爽")
}()
挂个go关键字,嘿!它就去另开协程跑去了,就像一条新路上另一台车。然后还能channel间丢丢东西:
go
c := make(chan int)
go func() { c <- 10 }()
fmt.Println(<-c)
这就跟你扔个球别人接住了一样简单的想法,多实用的理念。你让程序学会分道办事,万事并行它不加班。