前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >golang基础知识(3)

golang基础知识(3)

原创
作者头像
dbdocker
发布2024-02-01 11:00:46
发布2024-02-01 11:00:46
12100
代码可运行
举报
运行总次数:0
代码可运行

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

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

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

15. 映射(Maps)

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

代码语言:javascript
代码运行次数:0
复制
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
代码运行次数:0
复制
goCopy codetype Person struct {
    FirstName string `json:"first_name"`
    LastName  string `json:"last_name"`
    Age       int    `json:"age"`
}

17. 并发控制(Mutex)

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

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

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

18. 排序(Sorting)

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

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

19. JSON编解码

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

代码语言:javascript
代码运行次数:0
复制
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
代码运行次数:0
复制
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应用程序。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 15. 映射(Maps)
  • 16. 结构体标签(Struct Tags)
  • 17. 并发控制(Mutex)
  • 18. 排序(Sorting)
  • 19. JSON编解码
  • 20. 文件操作
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档