golang快速入门:从菜鸟变大佬
简介
Go是一种开源的编程语言,由Google开发。它具有高效、简洁、安全等特点,适用于构建高性能的网络服务和分布式系统。本攻略将介绍如何快速入门Go语言,从菜鸟变成大佬。
安装和配置
可以从官方网站下载Go语言的安装包,并按照提示进行安装。安装完成后,需要配置环境变量,以便在命令行中使用Go命令。可以在.bashrc
或.zshrc
文件中添加以下内容:
export PATH=$PATH:/usr/local/go/bin
Hello World
在学习任何编程语言时,第一个程序通常是Hello World。以下是一个简单的Hello World程序:
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
在上述代码中,package main
表示这是一个可执行程序,import "fmt"
表示导入了fmt包,func main()
表示程序的入口点,fmt.Println("Hello, World!")
表示输出Hello World。
可以使用以下命令来编译和运行程序:
go build hello.go
./hello
示例1:使用Go实现简单的HTTP服务器
Go语言内置了一个HTTP服务器,可以使用以下代码来实现一个简单的HTTP服务器:
package main
import (
"fmt"
"net/http"
)
func handler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello, World!")
}
func main() {
http.HandleFunc("/", handler)
http.ListenAndServe(":8080", nil)
}
在上述代码中,http.HandleFunc("/", handler)
表示将/
路径映射到handler
函数,http.ListenAndServe(":8080", nil)
表示在8080端口上启动HTTP服务器。
可以使用以下命令来编译和运行程序:
go build http.go
./http
在浏览器中访问http://localhost:8080
,将会看到输出Hello, World!
。
示例2:使用Go实现简单的并发程序
Go语言具有良好的并发支持,可以使用以下代码来实现一个简单的并发程序:
package main
import (
"fmt"
"sync"
)
func worker(id int, wg *sync.WaitGroup) {
defer wg.Done()
fmt.Printf("Worker %d starting\n", id)
for i := 0; i < 5; i++ {
fmt.Printf("Worker %d: %d\n", id, i)
}
fmt.Printf("Worker %d done\n", id)
}
func main() {
var wg sync.WaitGroup
for i := 1; i <= 3; i++ {
wg.Add(1)
go worker(i, &wg)
}
wg.Wait()
fmt.Println("All workers done")
}
在上述代码中,worker
函数表示一个工作线程,wg
表示一个等待组,wg.Add(1)
表示将等待组的计数器加1,go worker(i, &wg)
表示启动一个工作线程。
可以使用以下命令来编译和运行程序:
go build concurrency.go
./concurrency
在控制台中将会看到工作线程的输出,最后输出All workers done
。
总结
Go是一种高效、简洁、安全的编程语言,适用于构建高性能的网络服务和分布式系统。在本攻略中,我们介绍了Go语言的安装和配置、Hello World程序、示例1:使用Go实现简单的HTTP服务器、示例2:使用Go实现简单的并发程序。通过学习本攻略,相信你已经从菜鸟变成了Go语言的大佬。