Go语言入门指南 | 青训营

63 阅读2分钟

提供一个简单的Go语言入门指南,包括基础语法和常用特性,并附上一些例子来帮助你更好地理解。请注意,由于篇幅限制,这只是一个简要的概述。你可以根据需要深入学习每个主题。

Go语言入门指南:基础语法和常用特性解析

1. Hello, World!

我们从一个简单的程序开始,输出"Hello, World!",以了解Go语言的基本结构。

goCopy code
package main

import "fmt"

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

在这个示例中,package main 表示这个文件属于 main 包。import "fmt" 导入了 fmt 包,它提供了格式化文本输出的函数。func main() 是程序的入口函数,代码从这里开始执行。

2. 变量和数据类型

Go是一种静态类型语言,变量在使用前必须先声明。以下是一些常用的基本数据类型和变量声明的示例:

package main

import "fmt"

func main() {
    var integer int
    integer = 42

    var floatingPoint float64 = 3.14

    str := "Hello, Go!"

    isTrue := true

    fmt.Println(integer, floatingPoint, str, isTrue)
}

3. 基本语法

Go具有清晰简洁的语法,支持条件语句、循环语句和函数定义。

  • 条件语句:
package main

import "fmt"

func main() {
    x := 10

    if x > 5 {
        fmt.Println("x is greater than 5")
    } else {
        fmt.Println("x is not greater than 5")
    }
}
  • 循环语句:
package main

import "fmt"

func main() {
    for i := 0; i < 5; i++ {
        fmt.Println(i)
    }

    // 使用range遍历数组或切片
    nums := []int{1, 2, 3, 4, 5}
    for index, value := range nums {
        fmt.Printf("Index: %d, Value: %d\n", index, value)
    }
}
  • 函数定义:
package main

import "fmt"

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

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

在这个示例中,我们定义了一个名为 add 的函数,它接受两个整数参数并返回它们的和。在 main 函数中,我们调用了 add 函数并打印出结果。

4. 常用特性

Go有许多其他常用特性,如结构体、切片、映射、接口等。以下是一个简单的结构体和切片的例子:

  • 结构体:
package main

import "fmt"

type Person struct {
    FirstName string
    LastName  string
    Age       int
}

func main() {
    person := Person{
        FirstName: "John",
        LastName:  "Doe",
        Age:       30,
    }

    fmt.Println(person.FirstName, person.LastName, "is", person.Age, "years old")
}
  • 切片:
package main

import "fmt"

func main() {
    nums := []int{1, 2, 3, 4, 5}
    fmt.Println("Original:", nums)

    slice := nums[1:4]
    fmt.Println("Slice:", slice)
}

5. 并发与goroutine

Go语言天生支持并发编程,通过goroutine和通道(channel)可以方便地实现并发操作。

goCopy code
package main

import (
    "fmt"
    "time"
)

func printNumbers() {
    for i := 1; i <= 5; i++ {
        fmt.Println(i)
        time.Sleep(time.Second)
    }
}
func printLetters() {
    for char := 'a'; char <= 'e'; char++ {
        fmt.Println(string(char))
        time.Sleep(time.Second)
    }
}
func main() {
    go printNumbers()
    go printLetters()

    // 等待一段时间确保goroutines完成
    time.Sleep(6 * time.Second)
}

这个指南涵盖了一些Go语言中的常用特性,但Go拥有更多强大的功能,如接口、错误处理、测试等。继续深入学习将帮助你更好地理解并应用Go编程语言。如果你想要更深入的学习,请参考官方文档和其他高级教程。