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