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

78 阅读3分钟
  1. 包管理:
  • 每个Go程序都是由包构成的,main包是可执行程序的入口。
  • 使用import语句导入其他包。
  • 通过go mod命令来管理包的版本和依赖关系。
  1. 声明变量:
  • 使用关键字var来声明一个变量。

  • 变量的类型可以是内置的或自定义的。

  • 可以使用:=进行变量的声明和赋值(只能在函数内部使用)。

  • var name string // 声明变量 name = "John" // 赋值

    var age int = 30 // 声明变量并赋值

    score := 95 // 简短声明并赋值,自动推断类型

    const pi = 3.14 // 常量声明并赋值

  1. 常量:
  • 使用关键字const来声明常量。
  • 常量的值在编译时确定,不可更改。
  1. 数据类型:
  • 基本数据类型包括布尔型、数值型、字符串和字符类型。
  • 复合数据类型包括数组、切片、映射、结构体和接口。
  1. 控制流程:
  • if-else语句用于条件判断。
  • for循环用于重复执行代码块。
  • switch语句用于多条件判断。
  • defer关键字用于在函数返回之前执行一些代码。
  1. 函数:
  • 使用关键字func定义函数,可以有多个参数和返回值。
  • 函数可以作为参数传递和返回值。 // 基本函数 func add(a, b int) int { return a + b }

// 多返回值函数 func divide(a, b int) (int, int) { quotient := a / b remainder := a % b return quotient, remainder }

// 匿名函数 func() { fmt.Println("Hello, anonymous function!") }()

// 可变参数函数 func sum(nums ...int) int { total := 0 for _, num := range nums { total += num } return total }

  1. 指针:

声明指针变量: 使用*操作符声明一个指针变量,例如:var ptr *int

  • ptr是一个指向int类型的指针变量。

取地址操作符&

  • 使用&操作符获取变量的地址,例如:var a int = 42ptr = &a
  • ptr指向了变量a的内存地址。
  1. 错误处理:
  • Go鼓励使用多返回值来处理错误。
  • 使用error类型来表示错误。
  1. 结构体与方法:
  • 使用关键字type定义结构体,可以在结构体中定义字段。
  • 可以为结构体定义方法,方法是与特定类型关联的函数。 // 定义结构体 type Person struct { name string age int }

// 定义方法 func (p Person) sayHello() { fmt.Println("Hello, my name is", p.name) }

Go语言是一种开源的静态类型编程语言,它被设计为简单、高效、可靠的系统编程语言。下面列举了一些主要的特性:

  1. 并发支持:Go语言内置了轻量级的协程(goroutine)和通信机制(channel),方便编写高效的并发程序。
  2. 垃圾回收:Go语言拥有自动垃圾回收机制(Garbage Collection),减轻了开发人员的内存管理负担。
  3. 高效的编译和执行:Go语言的编译速度快,生成的可执行文件体积小,并且具有接近原生代码的执行性能。
  4. 内置工具:Go语言附带了许多内置工具,如格式化工具(gofmt)、包管理工具(go mod)、性能分析工具(go tool pprof)等。
  5. 内存安全:Go语言通过垃圾回收器和强类型检查,提供了内存安全的编程环境,避免了常见的内存错误。
  6. 丰富的标准库:Go语言的标准库提供了许多常用的功能模块,如网络编程、文件操作、加密解密、JSON/XML处理、并发编程等。
  7. 可读性强:Go语言注重代码的可读性,采用简洁的语法和一致的命名规范,使得代码易于理解和维护。
  8. 跨平台支持:Go语言的编译器支持多种操作系统和处理器架构,可以轻松地在不同平台上编译和运行代码。
  9. 静态类型语言:Go语言是静态类型的语言,提供了编译时的类型检查,减少了运行时的错误。
  10. 反射机制:Go语言提供了反射机制,能够在运行时动态地检查和修改变量、类型和函数等。