[翻译]Go与C#对比 第三篇:编译运行时类型系统模块和其它的一切

Posted InCerry

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[翻译]Go与C#对比 第三篇:编译运行时类型系统模块和其它的一切相关的知识,希望对你有一定的参考价值。

Go vs C#, Part 3: Compiler, Runtime, Type System, Modules, and Everything Else | by Alex Yakunin | ServiceTitan — Titan Tech | Medium

译者注

本文90%通过机器翻译,另外10%译者按照自己的理解进行翻译,和原文相比有所删减,可能与原文并不是一一对应,但是意思基本一致。

译者水平有限,如果错漏欢迎批评指正

本文发表于2020年1月,当时使用的.NET Core版本应该是3.1,Go版本应该是1.13版本。而现在.NET版本已经到6 Pre5,Go也到了1.16,经过这么多版本的迭代,Go和.NET的性能都有很大提高,所以数据仅供参考,当然也欢迎大家能在新的版本上跑一下最新的结果发一篇帖子出来。

译者@Bing Translator@InCerry,另外感谢@晓青@贾佬@晓晨@黑洞@maaserwen@帅张@3wlinecode@huchenhao百忙之中抽出时间帮忙review和检查错误。

原文链接:https://medium.com/servicetitan-engineering/go-vs-c-part-3-compiler-runtime-type-system-modules-and-everything-else-faa423dddb34


这一个系列中还有其他两篇文章:

想知道谁在这里吗?请一直读到最后。


这是本系列中最后一篇,希望是最有趣的一篇。第一篇和第二篇主要研究了Golang的协程和几乎无暂停的GC,这篇文章补充了所有缺失的部分。

相似性

两种语言的相似性:

  • 可以编译成本机代码
  • 可以在多个平台上运行
  • 依赖于垃圾收集
  • 支持模块【.NET中是程序集(assemblies)】
  • 支持类【在Go中叫结构(structs)】,接口【interfaces】和函数指针【function pointers .NET中叫委托(delegates)】
  • 提供一套错误处理的选项
  • 支持异步执行
  • 拥有丰富的基础类库
  • 具有类似的运行时性能

但是在这些功能的实现上,差异多于相同之处。让我们跳到这一部分

以上是关于[翻译]Go与C#对比 第三篇:编译运行时类型系统模块和其它的一切的主要内容,如果未能解决你的问题,请参考以下文章

[翻译]Go与C#对比 第三篇:编译运行时类型系统模块和其它的一切

JDK11 | 第三篇 : 局部变量类型推断

Go语言优势与劣势

Go 与 PHP 的语法对比

英汉翻译 第三篇

2021-05-12 GO 与C#代码行对比