Go 语言入门学习 | 青训营

100 阅读2分钟

Go语言特点

  1. 高性能,高并发
  2. 语法简单、学习曲线平缓
  3. 丰富标准库
  4. 完善的工具链
  5. 静态链接
  6. 快速编译
  7. 跨平台
  8. 垃圾回收

Go语言基础语法

1.Hello World

让我们从传统的“Hello, World!”程序开始,这是学习任何编程语言的第一步。

package main

import "fmt"

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

编写这个简单的程序时,我体会到了Go语言的简洁性和直观性。一行代码,就可以实现输出。这种简单与高效让我深受鼓舞。

2.变量与常量

在Go中,需要先声明变量或常量,然后再使用它们。变量可以根据需要修改其值,而常量是固定不变的。


import "fmt"

func main() {
    // 声明并初始化变量
    var age int = 30
    name := "Alice" // 类型推断,等同于 var name string = "Alice"

    // 声明常量
    const pi = 3.14159

    fmt.Println(name, "is", age, "years old.")
    fmt.Println("The value of pi is", pi)
}

3.数据类型

Go是一种静态类型语言,因此每个变量都有固定的数据类型。以下是一些常见的数据类型:

  • 整数类型: int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64
  • 浮点数类型: float32, float64
  • 字符串类型: string
  • 布尔类型: bool
  • 其他类型: byte (uint8 的别名), rune (int32 的别名, 用于表示Unicode字符)

熟悉不同的数据类型让我感受到了Go语言的严谨和稳健。通过指定明确的类型,我们可以更好地控制数据,减少错误和异常情况。

4.控制流


import "fmt"

func main() {
    // if语句
    age := 18
    if age >= 18 {
        fmt.Println("You are an adult.")
    } else {
        fmt.Println("You are a minor.")
    }

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

    // switch语句
    day := 3
    switch day {
    case 1:
        fmt.Println("Monday")
    case 2:
        fmt.Println("Tuesday")
    default:
        fmt.Println("Unknown day")
    }
}

控制流语句是编程的灵魂,也是最具表现力的部分。通过使用Go的控制流,我感受到了掌控程序流程的力量。

5.函数

在Go中,函数是基本的代码块。通过函数,我们可以将代码模块化,提高代码的可读性和重用性。


import "fmt"

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

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

6.数组与切片

Go中的数组是固定长度且类型相同的数据结构,而切片则是对数组的动态视图。


import "fmt"

func main() {
    // 声明数组并初始化
    var numbers [5]int = [5]int{1, 2, 3, 4, 5}

    // 声明切片并初始化
    var colors []string = []string{"red", "blue", "green"}

    // 使用range迭代切片
    for index, value := range colors {
        fmt.Println("Index:", index, "Value:", value)
    }
}

7.结构体与方法

Go中的结构体允许我们定义自定义的数据类型,方法则是可以与结构体关联的函数.


import "fmt"

type Person struct {
    name string
    age  int
}

func (p Person) introduce() {
    fmt.Println("Hi, my name is", p.name, "and I'm", p.age, "years old.")
}

func main() {
    p1 := Person{"Alice", 25}
    p1.introduce()
}