Go语言基础语法和常用特性 | 青训营

80 阅读2分钟

引言

Go语言是一种由Google开发的高效、简洁和并发支持良好的编程语言。本报告将介绍Go语言的基础语法和一些常用特性,并通过示例程序来说明这些概念。更具体地说,本报告记录了Go语言的基础知识,包括变量、数据类型、控制结构、函数,以及并发编程的基本概念。

1. 变量和数据类型

Go语言的变量声明非常简洁。使用 var关键字声明一个变量,然后跟上变量名和数据类型。例如:

var age int // 声明一个整数型变量age
age = 30    // 赋值

Go语言支持多种数据类型,包括整数、浮点数、字符串、布尔值等。示例如下:

var num int = 42
var pi float64 = 3.14
var name string = "Alice"
var isAdult bool = true

Go语言还支持隐式类型推断,可以根据赋值语句自动推断数据类型,如:

var num = 42      // 类型推断为int
var pi = 3.14     // 类型推断为float64
var name = "Alice" // 类型推断为string

2. 控制结构

2.1 条件语句

Go语言的条件语句使用if关键字。示例:

age := 25

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

2.2 循环结构

Go语言有for循环,它可以用于迭代数组、切片、映射等。示例:

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

3. 函数

Go语言使用func关键字定义函数。示例:

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

result := add(3, 4)
fmt.Println(result) // 输出7

函数可以返回多个值:

func divide(a, b float64) (float64, error) {
    if b == 0 {
        return 0, errors.New("除数不能为0")
    }
    return a / b, nil
}

result, err := divide(10.0, 2.0)
if err != nil {
    fmt.Println(err)
} else {
    fmt.Println(result) // 输出5
}

4. 并发编程

Go语言内置了强大的并发支持,通过goroutine和channel实现。示例:

import (
    "fmt"
    "time"
)

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

func printLetters() {
    for letter := 'a'; letter <= 'e'; letter++ {
        fmt.Printf("%c\n", letter)
        time.Sleep(time.Millisecond * 500)
    }
}

func main() {
    go printNumbers() // 启动一个goroutine打印数字
    go printLetters() // 启动一个goroutine打印字母

    // 等待一段时间,以允许goroutines完成
    time.Sleep(time.Second * 3)
}

这段程序会交替输出数字和字母,演示了Go语言的并发特性。

结论

本报告介绍了Go语言的基础语法和常用特性,包括变量、数据类型、控制结构、函数和并发编程。