Golang语法介绍 (3|完结篇)| 青训营

49 阅读2分钟

Golang中的切片、映射与面向对象编程

切片(Slices):灵活的动态数组

不知道大家在使用数组时是否曾觉得数组不太灵活。golang使用切片很好的解决了这个问题

切片是Go中一种重要的数据结构,它提供了对数组的动态、灵活的操作。与传统数组相比,切片具有变长特性,允许动态地增加、删除和修改元素。切片由指向底层数组的指针、长度和容量三部分组成。

package main

import "fmt"

func main() { // 创建切片

nums := []int{1, 2, 3, 4, 5}

// 切片操作

fmt.Println(nums[1:3]) // 输出: [2 3]

// 添加元素

nums = append(nums, 6)

// 修改元素

nums[0] = 0

// 遍历切片

for _, num := range nums {

fmt.Println(num)

} }

映射(Maps):灵活的键值对存储

映射是Go中的另一个重要数据结构,它提供了一种键值对的存储方式。映射允许你使用任何可比较类型作为键,并与之关联一个值。映射在查找和更新操作上非常高效。

map时key-value形式的数据,其中key只能为基本数据类型。

代码示例

package main

import "fmt"

func main() {

// 创建映射

person := map[string]int{

"Alice": 25,

"Bob": 30,

}

// 添加/更新元素

person["Charlie"] = 28

// 查找元素

age, exists := person["Alice"]

if exists {

fmt.Println("Alice's age:", age)

} else {

fmt.Println("Alice not found")

}

// 删除元素

delete(person, "Bob")

// 遍历映射

for name, age := range person {

fmt.Println(name, "is", age, "years old")

}

}

面向对象编程:封装与方法

虽然Go并不是一门纯粹的面向对象编程语言,但它支持面向对象的编程范式。在Go中,通过结构体(struct)和方法(method)来实现封装和抽象。

代码示例

package main

import "fmt"

// 定义结构体

type Rectangle struct {

Width float64

Height float64

}

// 定义方法 func (r Rectangle) Area() float64 { return r.Width * r.Height }

func main() {

// 创建结构体实例

rect := Rectangle{Width: 10, Height: 5}

// 调用方法

area := rect.Area()

fmt.Println("Rectangle's area:", area) }