Go 语言入门指南 | 青训营

48 阅读3分钟

Go 语言入门指南

基础语法和常用特性解析

Go语言是一门开源的编程语言,以其简洁、高效、并发支持等特性而受到广泛关注。本文将对Go语言的基础语法和常用特性进行解析,帮助初学者快速入门。

目录

  1. Hello, Go!
  2. 变量与常量
  3. 数据类型
  4. 控制流程
  5. 函数
  6. 包和模块
  7. 并发编程
  8. 标准库
  9. 错误处理
  10. 高级特性

1. Hello, Go!

让我们从一个简单的示例开始:Hello World!

package main

import "fmt"

func main() {
    fmt.Println("Hello, Go!")
}

这个示例展示了Go语言的基本结构:packageimportfuncfmt 是一个格式化输出的包,通过Println函数输出文本。

2. 变量与常量

Go语言中定义变量使用关键字var,常量使用关键字const

package main

import "fmt"

func main() {
    var message string
    message = "Hello, Variable!"

    const pi = 3.14159

    fmt.Println(message)
    fmt.Println(pi)
}

3. 数据类型

Go语言具有丰富的数据类型,包括基本类型(整型、浮点型、布尔型等)和复合类型(数组、切片、映射等)。

package main

import "fmt"

func main() {
    var num int = 42
    var isTrue bool = true
    var floatNum float64 = 3.14

    var arr [3]int
    arr[0] = 1
    arr[1] = 2
    arr[2] = 3

    var slice []int = []int{1, 2, 3}

    fmt.Println(num, isTrue, floatNum)
    fmt.Println(arr, slice)
}

4. 控制流程

Go语言支持常见的控制流程语句,如ifforswitch等。

package main

import "fmt"

func main() {
    age := 18

    if age >= 18 {
        fmt.Println("成年人")
    } else {
        fmt.Println("未成年人")
    }

    for i := 1; i <= 5; i++ {
        fmt.Println(i)
    }

    fruit := "apple"
    switch fruit {
    case "apple":
        fmt.Println("这是一个苹果")
    case "banana":
        fmt.Println("这是一个香蕉")
    default:
        fmt.Println("未知水果")
    }
}

5. 函数

在Go语言中,函数是一等公民。可以通过关键字func来定义函数,支持多返回值。

package main

import "fmt"

func add(a, b int) int {
    return a + b
}

func swap(x, y string) (string, string) {
    return y, x
}

func main() {
    sum := add(3, 5)
    fmt.Println("3 + 5 =", sum)

    a, b := "Hello", "World"
    a, b = swap(a, b)
    fmt.Println(a, b)
}

6. 包和模块

Go语言通过包来组织代码,一个文件所在的目录决定了它所属的包。可以使用import关键字引入其他包。

package main

import (
    "fmt"
    "math/rand"
)

func main() {
    fmt.Println("随机数:", rand.Intn(100))
}

7. 并发编程

Go语言天生支持并发,通过goroutinechannel实现。

package main

import (
    "fmt"
    "time"
)

func printNumbers() {
    for i := 1; i <= 5; i++ {
        fmt.Println(i)
        time.Sleep(100 * time.Millisecond)
    }
}

func printLetters() {
    for char := 'a'; char <= 'e'; char++ {
        fmt.Println(string(char))
        time.Sleep(100 * time.Millisecond)
    }
}

func main() {
    go printNumbers()
    go printLetters()

    time.Sleep(2 * time.Second)
}

8. 标准库

Go语言拥有丰富的标准库,涵盖了网络、文件操作、文本处理等功能。

package main

import (
    "fmt"
    "net/http"
)

func handler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Hello, Web!")
}

func main() {
    http.HandleFunc("/", handler)
    http.ListenAndServe(":8080", nil)
}

9. 错误处理

Go语言鼓励显式处理错误,通过返回错误类型来处理异常情况。

package main

import (
    "fmt"
    "os"
)

func main() {
    file, err := os.Open("myfile.txt")
    if err != nil {
        fmt.Println("无法打开文件:", err)
        return
    }
    defer file.Close()

    // 处理文件
}

10. 高级特性

Go语言还有许多高级特性,如接口、反射、垃圾回收等,超出了本文范围,可以在进一步学习时深入了解。


本文介绍了Go语言的基础

语法和常用特性,希望能帮助你快速入门。继续学习和实践,你将能够在Go语言中编写出高效、可维护的程序。Happy Coding!