Go 语言入门指南 | 豆包MarsCode AI刷题

3 阅读3分钟

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

Go 语言是一种开源的编程语言,它具有简洁、高效、并发性能强等特点,在云计算、分布式系统等领域得到了广泛应用。以下是对其基础语法和常用特性的详细解析。

一、变量与数据类型

Go 语言是静态类型语言,变量在使用前必须先声明。声明变量的基本语法如下:

收起

go

复制

var variableName type

例如:var num int 声明了一个整型变量 num。也可以在声明时初始化变量:var num int = 10。Go 语言还支持类型推断,即可以省略变量类型,由编译器自动推断,如 num := 10

Go 语言的数据类型丰富,包括基本数据类型如整型(intint8int16int32int64)、浮点型(float32float64)、布尔型(bool)、字符串型(string),以及复合数据类型如数组、切片、结构体、映射等。

二、控制结构

  1. 条件语句if-else 语句用于条件判断。

收起

go

复制

if condition {
    // 满足条件时执行的代码
} else if otherCondition {
    // 其他条件判断
} else {
    // 都不满足时执行的代码
}

例如:

收起

go

复制

age := 20
if age >= 18 {
    println("成年人")
} else {
    println("未成年人")
}
  1. 循环语句for 循环是主要的循环结构。

收起

go

复制

for initializer; condition; post {
    // 循环体
}

例如计算 1 到 10 的和:

收起

go

复制

sum := 0
for i := 1; i <= 10; i++ {
    sum += i
}

Go 语言中没有 while 和 do-while 循环,但可以通过 for 循环实现类似功能。

三、函数

函数定义的基本格式为:

收起

go

复制

func functionName(parameters) returnTypes {
    // 函数体
    return result
}

例如:

收起

go

复制

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

函数可以有多个返回值,这在处理一些复杂逻辑时非常方便,如同时返回计算结果和错误信息。

四、数组与切片

  1. 数组:数组是具有固定长度的同类型元素序列。声明方式为 var arrayName [size]type,例如 var arr [5]int。数组的长度是其类型的一部分,所以不同长度的数组属于不同类型。

  2. 切片:切片是对数组的抽象,可以动态地增长和收缩。通过 make 函数创建切片:slice := make([]type, length, capacity),其中 length 是初始长度,capacity 是容量。切片支持索引操作和 append 函数来添加元素,例如:

收起

go

复制

s := make([]int, 0, 5)
s = append(s, 1, 2, 3)

五、映射(Map)

映射是一种无序的键值对集合,使用 map 关键字定义。例如:m := make(map[string]int) 创建了一个键为字符串,值为整型的映射。可以通过 m[key] = value 来添加或修改键值对,通过 m[key] 来获取对应的值。

六、结构体

结构体用于组合不同类型的数据。定义结构体如下:

收起

go

复制

type structName struct {
    field1 type1
    field2 type2
    //...
}

例如:

收起

go

复制

type Person struct {
    Name string
    Age  int
}

可以创建结构体实例并访问其成员:

收起

go

复制

p := Person{"Alice", 25}
println(p.Name)

七、并发编程

Go 语言的并发编程通过 goroutine 和 channel 实现。goroutine 是轻量级的线程,可以通过 go 关键字启动一个函数作为 goroutine。例如:go func() { println("Hello, goroutine!") }()channel 用于在 goroutine 之间传递数据和同步,通过 make 函数创建通道,如 ch := make(chan int),可以使用 <- 操作符在通道上发送和接收数据。

Go 语言以其简洁高效的语法和强大的特性,为开发者提供了一种高效开发的选择。掌握其基础语法和常用特性是深入学习和应用的关键,随着对其不断深入了解,你将能更好地利用它来构建复杂而可靠的软件系统。