Golang:添加/替换/修补std库

时间:2017-03-23 10:29:47

标签: go lua

我有一个(自编的)运行时库,多年来我在各种编程项目中使用过它。它起源于Turbo Pascal早期的Pascal图书馆,后来在C,Perl和Lua中逐渐成长。我现在正在考虑将其转移到Go(尤其是因为Go和Lua之间存在一些有趣的相似之处)。 Go的std库的一个很好的部分或多或少地做了我自己的库所做的事情(例如,标志包或正则表达式的东西),在这种情况下我可以直接使用它们或者远离编写一个小的接口层

问题从那些我的模型与Go的过于不同的软件包开始,一个简单的界面层隐藏了差异(一个典型的例子就是目录行走函数)。我看到了两种前进方式:将我的代码重新实现为Go包;或修补一些现有的Go运行时包。

我倾向于第一种选择,尤其是因为这将帮助我掌握这种语言。然后,我经常根据自己的要求修补源代码,我对这种方法很满意。这些更改将进行本地化,将未来版本的Go运行时库与我的更改合并起来不会太困难。

这样做是否可行,可取或者我必须将Go源视为只读?

1 个答案:

答案 0 :(得分:1)

  

这样可行......?

没有。触摸Go stdlib后,一切都会破坏,因为每个包都依赖于stdlib。

  

所以......建议这样做......?

不,完全没有。

  

[D] o我必须将Go源视为只读?

请注意,您所谓的“运行时”不是Go运行时,而是Go的标准库。