Go编程语言入门与常见问题

Go编程语言入门知识

通道特性和多重返回值

Go语言通过通道特性和多重返回值的机制来实现一些功能,通道特性使得并发编程变得简洁高效,多重返回值则可以方便地返回多个结果,而无需借助结构体等复杂的数据结构。

map的基本操作

以下是Go语言中map的基本操作示例:

Go 复制代码
package main
import "fmt"

func main() {
    //1、初始化
    m1 := map[string]int{}
    m2 := make(map[string]int, 10)

    //2、插入数据
    m1["AA"] = 10
    m1["BB"] = 20
    m1["CC"] = 30
    m2["AA"] = 10
    m2["BB"] = 20
    m2["CC"] = 30

    //3、访问数据
    fmt.Println("m1 AA=", m1["AA"])
    fmt.Println("m2 BB=", m2["BB"])
    fmt.Println()

    //4、删除
    delete(m1, "AA")
    delete(m2, "BB")
    fmt.Println("m1 AA=", m1["AA"])
    fmt.Println("m2 BB=", m2["BB"])
    fmt.Println()

    //5、遍历
    for key, value := range m1 {
        fmt.Println("m1 Key=", key, ";Value=", value)
    }
    fmt.Println()
    for key, value := range m2 {
        fmt.Println("m2 Key=", key, ";Value=", value)
    }
}

上述代码展示了map的初始化、插入数据、访问数据、删除元素以及遍历操作。


常见出错问题

测试报错

新建项目,编写测试函数后,在终端输入 go test 可能会得到报错:go.mod file not found in current directory or any parent directory; see 'go help modules'

nil 关键字使用错误

不能使用"nil"来定义一个没有类型的变量。"nil"关键字可用于表示"0 值",例如在接口、函数、指针等对象中,但用于定义没有进行类型声明的变量,会导致编译错误,因为编译器无法确定变量类型。

Channel 常见错误

Channel 常见错误围绕以下场景:未初始化的 nil Channel;关闭时机不当(重复关闭、过早关闭);阻塞与死锁(无缓冲 Channel 未配对、Range 循环未关闭);竞态条件(多个 Goroutine 操作 Channel)。

错误处理问题

在错误处理方面,如果不恰当处理错误,可能会导致程序运行异常。例如对于未知错误,如果不进行合适判断处理,直接 panic 可能会使程序崩溃。

相关推荐
froginwe1110 分钟前
DOM 加载函数
开发语言
Hello eveybody26 分钟前
介绍一下背包DP(Python)
开发语言·python·动态规划·dp·背包dp
AI进化营-智能译站42 分钟前
ROS2 C++开发系列12-用多态与虚函数构建可扩展的ROS2机器人行为模块
开发语言·c++·ai·机器人
iCxhust1 小时前
微机原理实践教程(C语言篇)---A002流水灯
c语言·开发语言·单片机·嵌入式硬件·51单片机·课程设计·微机原理
莎士比亚的文学花园1 小时前
Linux驱动开发(3)——设备树
开发语言·javascript·ecmascript
图码1 小时前
如何用多种方法判断字符串是否为回文?
开发语言·数据结构·c++·算法·阿里云·线性回归·数字雕刻
U盘失踪了1 小时前
python curl转python脚本
开发语言·chrome·python
charlie1145141911 小时前
Linux 字符设备驱动:cdev、设备号与设备模型
linux·开发语言·驱动开发·c
handler011 小时前
Linux 内核剖析:进程优先级、上下文切换与 O(1) 调度算法
linux·运维·c语言·开发语言·c++·笔记·算法
FQNmxDG4S1 小时前
Java泛型编程:类型擦除与泛型方法的应用场景
java·开发语言·python