浅谈Go泛型

What 什么是泛型

维基百科 泛型

           泛型程序设计(generic programming)是程序设计语言的一种风格或范式。泛型允许程序员在强类型程序设计语言中编写代码时使用一些以后才指定的类型,在实例化时作为参数指明这些类型。各种程序设计语言和其编译器、运行环境对泛型的支持均不一样。AdaDelphiEiffelJavaC#F#Swift 和 Visual Basic .NET 称之为泛型(generics);MLScala 和 Haskell 称之为参数多态(parametric polymorphism);C++ 和 D称之为模板。具有广泛影响的1994年版的《Design Patterns》一书称之为参数化类型(parameterized type。

泛型的定义主要有以下两种:

  1. 在程序编码中一些包含类型参数的类型,也就是说泛型的参数只可以代表类,不能代表个别对象。(这是当今常见的定义)
  2. 在程序编码中一些包含参数的。其参数可以代表类或对象等等。(现在人们大多把这称作模板)

不论使用哪个定义,泛型的参数在真正使用泛型时都必须作出指明。

Why  为什么要使用泛型

 一些强类型程序语言支持泛型,其主要目的是加强类型安全及减少类转换的次数,但一些支持泛型的程序语言只能达到部分目的。

How 如何使用泛型

Go泛型使用

Go泛型使用 中文

类型参数建议

Go编程语法规范

Go泛型如何实现的

When 什么时候使用泛型

  • 对于 slice、map、channel 等类型,如果它们的元素类型是不确定的,操作这类类型的函数可以考虑用泛型

  • 一些通用目的的数据结构,比如前面提到的二叉树等
  • 如果一些函数行为相同,只是类型不同,可以考虑用泛型重构

Test 测试题

posted @   解忧swag  阅读(288)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示