您现在的位置是:亿华云 > IT科技类资讯
Go 泛型主要设计者介绍使用泛型的最佳时机
亿华云2025-10-04 00:55:49【IT科技类资讯】6人已围观
简介近期一篇主题为“Go 泛型导致代码运行速度变慢”的文章引起了广泛讨论。因为 Go 开发者对“泛型”这项特性期盼已久,但最后却发现有所落差。Go 泛型主要设计者 Ian Lance Taylor 也留意
近期一篇主题为“Go 泛型导致代码运行速度变慢”的泛型泛型文章引起了广泛讨论。因为 Go 开发者对“泛型”这项特性期盼已久,主设但最后却发现有所落差。计者介绍佳时机
Go 泛型主要设计者 Ian Lance Taylor 也留意到了相关的使用讨论,于是泛型泛型近日他在 Go 官方博客发表了自己 2021 年的演讲——《When To Use Generics》,来介绍使用 Go 泛型的主设最佳时机。
上文提到的计者介绍佳时机文章指出,从历史上看,使用C++、泛型泛型D 乃至 Rust 等系统语言一直采用单态化方法实现泛型。主设然而,计者介绍佳时机Go 1.18 的使用泛型实现并不完全依靠单态化 (Monomorphization),而是泛型泛型采用了一种被称为"GCShape stenciling with Dictionaries"的云服务器提供商部分单态化技术。这种方法的主设好处是可以大幅减少代码量,但在特定情况下,计者介绍佳时机会导致代码速度变慢。
Ian Lance Taylor 表示,Go 的通用开发准则有要求:开发者应通过编写代码而不是定义类型来编写 Go 程序。当涉及到泛型时,如果通过定义类型参数约束来编写程序,那一开始就走错了路。正解应该是从编写函数开始,当明确了类型参数的作用后,再添加类型参数就很容易了。
接着,Ian 列举了 4 种类型参数能有效发挥作用的香港云服务器情况:
使用语言定义的特殊容器类型通用数据结构类型参数首选是函数,而非方法的情况不同类型需要实现通用方法同时也提醒了不适合使用类型参数的情况:
不要使用类型参数替换接口类型 (Interface Type)如果方法实现不同,不要使用类型参数在适当的地方使用反射 (reflection)最后,Ian 给出了简要的泛型使用方针,当开发者发现自己多次编写完全相同的代码,而这些副本之间的唯一区别仅在于使用了不同类型,这时候便可以考虑使用类型参数。换句话说,即开发者应避免使用类型参数,直到发现自己要多次编写完全相同的代码。
本文转自OSCHINA
本文标题:Go 泛型主要设计者介绍使用泛型的站群服务器最佳时机
本文地址:https://www.oschina.net/news/191309/when-generics
很赞哦!(696)
相关文章
- 域名和网址一样吗?域名和网址有什么区别?
- PyTorch 1.11 发布,带来 TorchData 和 functorch 两个新库
- 社区纠纷不断:程序员何苦为难程序员
- 使用Spring Boot + Quartz 实现分布式定时任务平台
- 解析之后一般在十分钟内生效,如果没有生效可以联系域名服务商进行沟通。
- Flutter应用开发入门指南
- 实例分析MySQL下的四种事务隔离级别
- 代码Review,瑞出事来了!
- 只要我们做的是从目前的市场情况选择域名,从简单易记,从个性特征上,我们就可以找到一个好域名进行注册。域名注册进行域名记录和解析以及绑定网站后,客户可以通过URL登录您的网站。
- 架构师如何选型分布式定时任务