大咖助阵|海纳:聊聊语言中的类型系统与泛型
该思维导图由 AI 生成,仅供参考
- 深入了解
- 翻译
- 解释
- 总结
编程语言中的类型系统与泛型是程序员需要了解的重要概念。本文首先介绍了不同编程语言对类型的要求和处理方式,比较了Go语言、JavaScript和Python在类型检查和类型转换方面的差异。接着,讨论了静态类型和动态类型的优缺点,以及在不同场景下的应用。复合类型的概念也得到了介绍,包括枚举、结构、列表、字典等。泛型作为类型系统中常见且困难的话题,通过一个栈的例子展示了其在提高编程效率和节省代码量方面的优势。此外,文章还提供了一个新的视角来理解泛型,将泛型类看作是一种函数,其输入参数可以是类型或值,返回值是一种新的类型。最后,对C++和Java中的泛型实现进行了比较,突出了它们的不同之处。文章内容全面涵盖了类型系统和泛型的重要概念,对读者快速了解编程语言中类型概念具有指导意义。
《Tony Bai · Go 语言第一课》,新⼈⾸单¥59
全部留言(3)
- 最新
- 精选
- _MISSYOURLOVE弱类型就没有这种泛型的苦恼,例如世界上最好的语言PHP,一个数组几乎就可以搞定所有事情,但是性能确实比不上这些编译型语言
作者回复: 👍
2022-05-191 - Kepler老师,string stack应该是输出world! hello吧
作者回复: 我用海纳老师的代码分别在MacOS和ubuntu上编译运行了一下,结果很让我吃惊: macos上输出: 3 world!hello 而ubuntu上居然输出: 3 hello world! macos上的g++版本: $g++ -v Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/c++/4.2.1 Apple LLVM version 10.0.1 (clang-1001.0.46.4) Target: x86_64-apple-darwin18.7.0 Thread model: posix InstalledDir: /Library/Developer/CommandLineTools/usr/bin ubuntu上g++版本: gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04) 按照代码语义,stack的先进后出,理论上:world! hello 应该才是对的。
2022-05-052 - 奕typescript 的泛型的实现 应该是借鉴了 C++ 的实现, 都是产生一个新的类型2022-02-1414