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

81 阅读2分钟

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

Go(Golang)是一种静态类型、编译型语言,由 Google 开发,因其简洁的语法和高并发特性广受欢迎。 Go语言以其简洁的语法、静态类型检查、高效的并发支持和跨平台能力,为开发者提供了一种现代化、高效的开发工具。掌握变量、控制结构、函数、指针、并发等核心语法特性,可以快速上手开发从CLI工具到Web服务的大量应用场景。

1. Go 的基础语法****

1.1 Go 程序结构****

一个简单的 Go 程序结构如下:


import "fmt"

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

1.2 数据类型****

Go 提供多种内置数据类型:

基本类型:int, float64, string, bool

复合类型:array, slice, map, struct

特殊类型:chan, interface, function

var slice []int          // 切片
var m map[string]string  // 字典

我使用切片遇到的坑,总结一下 切片与数组共享内存:切片背后是数组的引用,修改切片的元素会影响原始数组,反之亦然。 **1.3 结构体(Struct) 切片容量的变化:append会在切片容量不足时创建一个新的底层数组,因此会改变切片的引用。需要注意这个变化可能导致引用不一致的问题。 切片越界:访问切片时,如果索引超出切片的长度,会导致运行时错误(panic)。 切片的容量不足导致重新分配:当追加元素时,如果切片容量不足,Go会自动分配更大的内存。注意,新内存的切片会指向新数组,可能导致预期外的内存使用和性能问题。

结构体是自定义数据类型。

    Name string
    Age  int
}

p := Person{Name: "Alice", Age: 25}
fmt.Println(p.Name)

结构体(struct)是Golang中的一种自定义数据类型,用于将一组相关的字段组合在一起。它类似于面向对象编程中的“类”,但Go语言并不完全支持传统的面向对象编程。Golang的结构体灵活且功能强大,不仅能定义复杂的数据模型,还能通过嵌套、方法、标签和接口组合等实现模块化开发。无论是处理基本数据、模拟类继承还是实现高效并发,结构体在Golang开发中都扮演了不可替代的角色。

Go 语言的结构体字段名有大小写敏感的访问控制规则:

大写字母开头的字段:表示该字段可以在包外访问(即公共字段)。

小写字母开头的字段:表示该字段只能在包内访问(即私有字段)。