go语言为什么没有泛型 golang没有泛型( 二 )


复合编程语言
Hack
Hack是一种作为 PHP 方言的 HipHop 虚拟机的编程语言 。于 2014 年由Facebook创建,允许程序员同时使用静态和动态类型(也称为渐进类型) , 这为编码提供了灵活性 。
Julia
Julia是一种高级通用编程语言,用于计算科学和数值分析 。Julia 以动态类型和可重现的高性能特性而闻名 。
Julia 在数据可视化和机器学习等方面都有大量用途 。事实上,它被英国保险公司 Aviva 用于风险计算,纽约联邦储备银行用于金融建模,甚至气候建模联盟用于气候变化建模 。它拥有Fortran、C++、R、Java、C 、Python等的接口,这使其成为最受追捧的新语言之一 。
Kotlin
Kotlin是运行在 Java 虚拟机中的更快、更流畅的 Java 版本 。它现在是Android 开发的首选语言 。根据 Android 开发者网站显示,程序员正转而采用 Kotlin,因为该语言的样板代码更少 , 空指针异常更少,并且与 Java 有互操作性 。
Kotlin 可用于在 iOS 和 Android 上运行的应用程序、不使用额外运行时或虚拟机 。
Nim
Nim是一种优先考虑可读性的静态类型语言 。通过结合多种语言的特性,Nim 为程序员提供了速度和易用性 。
它带有 JavaScript 后端、分散的包管理、自动内存管理、C 和 C++ 库的绑定以及用于调试的回溯 。作为一种语言,Nim 是有限的,但它包含一组元编程功能,如泛型、模板和宏,因此开发人员可以在避免冗长代码的同时以不同的风格工作 。
OCaml作为此列表中较旧的语言,OCaml是一种多范式语言——既有函数式、命令式和类型安全 , 也具有面向对象功能 。
OCaml 的一些优势:定义数据类型很容易 。默认情况下,所有变量都是不可变的 。API 稳定,具有良好的库向后兼容性 。该语言还为独立应用程序提供自动内存管理和单独编译 。
Reason
如果比JavaScript 更快、更简单且类型安全会怎样?
这就是创建Reason的 Facebook 开发者想要回答的问题 。不过 , 他并没有从头开始构建一种新语言,而是采用了 OCaml,并将其调整为类似于 JavaScript 。
Reason使用项目 BucketScript编译为 JavaScript , 并且可以访问 80% 的 JavaScript 工具和生态系统 。它还可以编译为准系统、iOS、Android 和微控制器 。
Red
Red是一种最初旨在克服 Rebol 语言限制的编程语言 。Red 于 2011 年推出,受 Rebol、Lua 和 Scala 等语言的影响,对高级和低级编程都很有用 。
该语言可用于开发从高级 GUI 到低级操作系统的所有方面 。Red 拥有人性化的语法、低内存占用和垃圾收集等优点 。
Rust
Rust解决了一些与 Go 相同的问题,如系统级别的线程和进程安全,,但Rust 更像 C 风格的语法
但Rust语言的缺点:静态类型和缺乏垃圾收集
Rust可直接访问内存意味着程序员可以编写低级代码 , 如操作系统内核 。Rust 也非常适合嵌入式设备、网络服务和命令行编写 。
如何看待go语言泛型的最新设计?Go 由于不支持泛型而臭名昭著go语言为什么没有泛型,但最近 , 泛型已接近成为现实 。Go 团队实施go语言为什么没有泛型了一个看起来比较稳定的设计草案,并且正以源到源翻译器原型的形式获得关注 。本文讲述的是泛型的最新设计,以及如何自己尝试泛型 。
例子
FIFO Stack
假设go语言为什么没有泛型你要创建一个先进先出堆栈 。没有泛型 , go语言为什么没有泛型你可能会这样实现:
type Stack []interface{}func (s Stack) Peek() interface{} {
return s[len(s)-1]
}
func (s *Stack) Pop() {

推荐阅读