[翻译]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和检查错误。
这一个系列中还有其他两篇文章:
- 第一篇:Goroutines vs Async-Await 【中文翻译版】
- 第二篇:Garbage Collection. 【垃圾回收-中文翻译版】
想知道谁在这里吗?请一直读到最后。
这是本系列中最后一篇,希望是最有趣的一篇。第一篇和第二篇主要研究了Golang的协程和几乎无暂停的GC,这篇文章补充了所有缺失的部分。
相似性
两种语言的相似性:
- 可以编译成本机代码
- 可以在多个平台上运行
- 依赖于垃圾收集
- 支持模块【.NET中是程序集(assemblies)】
- 支持类【在Go中叫结构(structs)】,接口【interfaces】和函数指针【function pointers .NET中叫委托(delegates)】
- 提供一套错误处理的选项
- 支持异步执行
- 拥有丰富的基础类库
- 具有类似的运行时性能
但是在这些功能的实现上,差异多于相同之处。让我们跳到这一部分
以上是关于[翻译]Go与C#对比 第三篇:编译运行时类型系统模块和其它的一切的主要内容,如果未能解决你的问题,请参考以下文章