golang基础知识(3)

2024-02-01 11:00:46 浏览数 (1)

切片是对数组的一种抽象,它提供了一种更方便的方式来操作序列数据。

代码语言:javascript复制
goCopy code// 创建切片
numbers := []int{1, 2, 3, 4, 5}

// 切片的基本操作
numbers = append(numbers, 6)    // 添加元素
fmt.Println(numbers[1:3])        // 输出: [2 3],切片操作

15. 映射(Maps)

映射是一种用于存储键值对的数据结构,类似于字典或哈希表。

代码语言:javascript复制
goCopy code// 创建映射
ages := map[string]int{
    "Alice": 25,
    "Bob":   30,
    "Charlie": 35,
}

// 操作映射
ages["David"] = 40    // 添加新元素
delete(ages, "Bob")   // 删除元素
fmt.Println(ages["Alice"])  // 输出: 25

16. 结构体标签(Struct Tags)

结构体字段可以附带标签,这些标签在运行时可以被反射读取。

代码语言:javascript复制
goCopy codetype Person struct {
    FirstName string `json:"first_name"`
    LastName  string `json:"last_name"`
    Age       int    `json:"age"`
}

17. 并发控制(Mutex)

Golang通过sync包提供了互斥锁(Mutex)来控制并发访问共享资源。

代码语言:javascript复制
goCopy codevar mu sync.Mutex
var balance = 0

func deposit(amount int) {
    mu.Lock()
    defer mu.Unlock()
    balance  = amount
}

18. 排序(Sorting)

Golang的sort包提供了对切片的排序功能。

代码语言:javascript复制
goCopy codefruits := []string{"apple", "orange", "banana", "grape"}
sort.Strings(fruits)
fmt.Println(fruits)  // 输出: [apple banana grape orange]

19. JSON编解码

Golang内置了对JSON的编解码支持,方便地将结构体与JSON数据相互转换。

代码语言:javascript复制
goCopy code// 结构体到JSON
person := Person{"John", "Doe", 30}
jsonData, _ := json.Marshal(person)
fmt.Println(string(jsonData))

// JSON到结构体
var newPerson Person
json.Unmarshal(jsonData, &newPerson)

20. 文件操作

Golang的osio/ioutil包提供了文件操作的功能。

代码语言:javascript复制
goCopy code// 写文件
data := []byte("Hello, Golang!")
err := ioutil.WriteFile("example.txt", data, 0644)

// 读文件
content, err := ioutil.ReadFile("example.txt")
fmt.Println(string(content))

这些基础知识概念使得Golang在实际应用中更加强大和灵活。通过掌握这些知识点,你可以更好地构建高效、可维护的Golang应用程序。

go

0 人点赞