怪奇物语

怪奇物语

首页 新随笔 联系 管理

2025年4月23日 #

摘要: golang 鸭子类型(Duck Typing) 1. 基础示例:接口的隐式实现 代码 package main import "fmt" // 定义接口 Duck,要求实现 Quack() 方法 type Duck interface { Quack() string // 鸭子必须会“嘎嘎”叫 阅读全文
posted @ 2025-04-23 08:00 超级无敌美少男战士 阅读(59) 评论(0) 推荐(0)

摘要: golang Go 闭包与循环变量陷阱及解决方案 示例 1:未处理的闭包变量陷阱 func main() { for i := 0; i < 3; i++ { defer func() { println(i) }() } } 现象 输出:3 3 3(三个 3) 原因 闭包捕获的是变量的引用,而非值 阅读全文
posted @ 2025-04-23 08:00 超级无敌美少男战士 阅读(75) 评论(0) 推荐(0)

摘要: golang 函数 命名返回值 和defer关键字的使用 1. 示例代码解析 以下代码展示了如何通过 defer 修改命名返回值: func Inc() (v int) { defer func() { v++ }() return 42 } fmt.Println(Inc()) // 输出 43 阅读全文
posted @ 2025-04-23 08:00 超级无敌美少男战士 阅读(52) 评论(0) 推荐(0)

摘要: golang new 和 make 的区别 以下通过代码示例对比 new 和 make 的区别,涵盖 结构体、切片、映射、通道 四种场景: 1. 结构体(Struct) type Person struct { Name string Age int } // 使用 new 创建结构体指针 p1 : 阅读全文
posted @ 2025-04-23 08:00 超级无敌美少男战士 阅读(30) 评论(0) 推荐(0)

摘要: Go语言 goalng 切片 slice 空切片 nil切片 一、基础概念 长度(len):切片当前包含的元素数量。 容量(cap):底层数组能容纳的最大元素数量。 nil切片:len=0, cap=0 且 slice == nil。 非nil切片:即使 len=0,只要 slice != nil。 阅读全文
posted @ 2025-04-23 08:00 超级无敌美少男战士 阅读(37) 评论(0) 推荐(0)

摘要: golang make 1. make 函数的核心概念 用途:make 是 Go 语言的内置函数,专门用于初始化 切片(slice)、映射(map)和通道(channel) 三种引用类型。 功能: 分配内存:为指定类型的底层数据结构分配足够的内存空间。 初始化内部结构:确保初始化后的对象可以直接使用 阅读全文
posted @ 2025-04-23 08:00 超级无敌美少男战士 阅读(183) 评论(0) 推荐(0)

摘要: golang 函数数组、接口数组和管道数组 1. 函数数组(Function Arrays) 定义:数组的元素是函数,所有函数必须具有相同的参数类型和返回类型。 用途:用于存储多个具有相同签名的函数,实现动态选择或策略模式。 示例代码 package main import "fmt" // 定义两 阅读全文
posted @ 2025-04-23 08:00 超级无敌美少男战士 阅读(35) 评论(0) 推荐(0)

摘要: golang 闭包自动捕获外部变量的引用 闭包自动捕获外部变量的引用,即使外部函数已返回 func createCounter() func() int { count := 0 // 外部变量 return func() int { count++ // 直接修改外部变量 return count 阅读全文
posted @ 2025-04-23 08:00 超级无敌美少男战士 阅读(18) 评论(0) 推荐(0)