golang快速入门:从菜鸟变大佬

  • Post category:other

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语言的大佬。