内容文章
string和[]byte string是不可变类型,不能通过下标修改值,适合表示不可变的文本数据,安全、简洁,适合 map 键和比较操作。 []byte可变类型,可以通过下标修改值,也可以动态扩容,适合处理可变的字节流,性能更高,适合 I/O 和缓冲区操作。 具名函数定义必须位于包级别中,不能在 …
📊 性能优化分类总览 # </> text 复制 1┌─ 代码层面优化 2│ ├─ 内存优化 3│ ├─ 并发优化 4│ ├─ 算法优化 5│ └─ 编译器优化 6│ 7├─ 运行时优化 8│ ├─ GC 优化 9│ ├─ 调度优化 10│ └─ 内存管理 11│ 12├─ I/O 优化 …
类型拥有方法,接口声明方法(签名) interface # 1. 接口%v格式化输出 # 非空接口:输出的是动态值的 %v 格式化结果 空接口:同样输出动态值的 %v 格式化结果 如果类型实现了 String() 方法:%v 会调用该方法 %#v 输出更详细信息:包括类型信息 2. 组合、嵌套 # …
append # 参考一篇文章带你看懂Go append方法 | Go主题月 recover # recover 只能在延迟函数(defer)中直接调用才有用,如果在正常执行的函数中调用 recover,它会返回 nil,没有其他效果 当 panic 发生时,当前函数会立即停止执行,开始执行已注册的 …
通用格式化: # 动词 描述 示例 %v 值的默认格式 fmt.Printf("%v", 42) → 42 %#v Go语法表示 fmt.Printf("%#v", "hello") → "hello" %T 值的类型 …
Go语言(Golang)的语法设计以简洁和明确性为核心,因此它避免了许多其他语言中常见的抽象或复杂的语法特性。以下是Go语言中一些相对少见或独特的语法设计,以及与其他语言的对比: 1. 没有三元运算符(?:) # Go语言明确移除了C语言风格的三元运算符(condition ? a : b),而是要 …
Go 语言 Channel 详解及其与 Linux 管道的比较 # 1. Go Channel 基本概念 # Channel(通道)是 Go 语言中的一种核心并发原语,用于在不同的 goroutine 之间进行通信和同步。它类似于 Unix 系统中的管道概念,但具有更丰富的特性和更强的类型安全性。 …
赋值 # Go 是强类型语言,赋值时类型必须匹配 基本赋值 </> go 复制 1var a int 2a = 10 // 基本赋值 3 4b := 20 // 短变量声明并赋值 数组赋值 </> go 复制 1var arr [3]int 2arr = [3]int{1, 2, 3} …
bufio 包详解 # bufio 是 Go 标准库中的一个包,提供了带缓冲的 I/O 操作功能。它可以包装现有的 io.Reader 和 io.Writer 对象,创建具有缓冲功能的对象,从而提高 I/O 操作的效率。 核心概念 # 缓冲 I/O 的优势 # 减少系统调用:通过缓冲数据,减少实际的 …