📜  学习Go语言教程(1)

📅  最后修改于: 2023-12-03 15:09:22.774000             🧑  作者: Mango

学习Go语言教程

一、简介

Go语言是一门在21世纪初由Google开发的静态类型编程语言,它注重于简洁和效率。Go语言因其高效的编译器和并发性能而备受程序员青睐。

二、安装Go语言

Go语言在各个操作系统平台都有对应的安装包,下载后直接安装即可。安装完成后,需要设置GOROOTGOPATH等环境变量。

export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
export GOPATH=$HOME/go
三、基础语法
1. 变量声明

Go语言有三种变量声明方式:varconst:=

  • var用于声明一个指定类型的变量:
var age int = 28
  • const用于声明一个常量:
const pi float32 = 3.14159
  • :=用于快速声明并赋值一个变量:
name := "John"
2. 数据类型

Go语言有以下几种基础数据类型:

  • 整型:int、int8、int16、int32、int64、uint、uint8等。

  • 浮点型:float32、float64。

  • 字符型:byte(别名为uint8)、rune(别名为int32)。

  • 字符串型:string。

  • 布尔型:bool。

3. 函数

函数是Go语言中的一等公民,可以定义、调用并作为参数和返回值传递。定义函数的语法如下:

func 函数名(参数列表) (返回值列表) {
    // 函数体
}

例如,定义一个函数计算两个整数的和:

func add(x int, y int) int {
    return x + y
}
4. 流程控制

Go语言的流程控制语句包括:if、for、switch和select。

  • if语句:
if x < 10 {
    fmt.Println("x is less than 10")
} else if x == 10 {
    fmt.Println("x is equal to 10")
} else {
    fmt.Println("x is greater than 10")
}
  • for语句:
for i := 0; i < 10; i++ {
    fmt.Println(i)
}

for _, val := range arr {
    fmt.Println(val)
}
  • switch语句:
switch day {
case "Monday":
    fmt.Println("Today is Monday")
case "Tuesday":
    fmt.Println("Today is Tuesday")
default:
    fmt.Println("It's not Monday or Tuesday")
}
四、并发编程

Go语言是一门天生支持并发编程的语言,它通过轻量级线程——Goroutines和消息传递的方式——Channel实现并发编程。在Go语言中,使用关键字go可以创建一个新的Goroutine,使用Channel可以进行通信。

例如,定义一个计算异步平方和的程序:

func main() {
    nums := []int{1, 2, 3, 4, 5}
    c := make(chan int)
    go square(nums, c)
    sum := 0
    for i := 0; i < len(nums); i++ {
        sum += <-c
    }
    fmt.Println(sum)
}

func square(nums []int, c chan int) {
    for _, num := range nums {
        time.Sleep(1 * time.Second) // 模拟计算
        c <- num * num
    }
    close(c)
}
五、学习资源推荐

以上是学习Go语言教程的简要介绍,欢迎大家进一步深入学习和实践。