⚡ 编程实验室🏗️ HTML🎨 CSS⚡ JavaScript🐍 Python🗄️ SQL☕ Java⚛️ React💚 Vue🟢 Node.js⚙️ C语言🐘 PHP🐹 Go🔷 TypeScript🐬 MySQL🔧 C++🎯 C#🦀 Rust🅱️ Bootstrap💡 jQuery🎸 Django🍃 MongoDB👗 Sass🎪 Kotlin📊 R语言📋 XML📊 Excel🐘 PostgreSQL🐳 Docker🅰️ Angular🎮 游戏🏠 网站首页

Go泛型:类型安全与代码复用

学习Go 1.18引入的泛型特性,包括类型参数、约束和泛型函数/类型的使用方法。 · 难度:入门 · +15XP

泛型基础

泛型允许你编写与类型无关的代码,同时保持类型安全。通过类型参数(type parameters)和约束(constraints),你可以定义可复用的函数和类型。

泛型函数

func MinT constraints.Ordered T {
    if a < b { return a }
    return b
}

泛型类型

type Stack[T any] struct {
    items []T
}

func (s *Stack[T]) Push(item T) { s.items = append(s.items, item) }

func (s *Stack[T]) Pop() T { if len(s.items) == 0 { panic("empty") } item := s.items[len(s.items)-1] s.items = s.items[:len(s.items)-1] return item }

关键词说明
any等价于interface{}
comparable支持==!=的类型
constraints.Ordered支持< <= > >=的类型

练习提示

尝试实现一个泛型Map函数,接受一个切片和一个转换函数,返回转换后的新切片。注意使用any约束。

Ctrl+Enter
🚀 升级VIP
解锁全部课程+AI助手

🏆 学习排行

加载中...

📊 统计

📖 142 篇
0 完成
🔥 0