使用猴子补丁

时间:2018-05-03 10:50:01

标签: go

在Go中可以像在Ruby中一样修补猴子吗?

如果是这样,我有第三方库构建,其中包含一个名为encrypt的函数。现在我想覆盖函数的行为。这可能吗?

2 个答案:

答案 0 :(得分:3)

Golang是一种编译语言,您必须编辑代码,重新编译并重新部署。 “猴子修补”是不可能的,就好像你正在谈论在已经部署像ruby之后更改软件一样。 (这是一种解释性语言)。

但是如果您的问题超出了修补程序并涉及在运行时从外部源添加新代码,您可能需要查看go插件。 关于它,here是一个很好的媒体帖子。

答案 1 :(得分:1)

我对ruby并不大,所以要确保我们在同一页面上:我的理解是猴子修补允许你在运行时更改附加到给定类型的基础行为(方法)。

在这里,这将是一个很大的脂肪,不是没有,在大多数情况下可能也应该在红宝石中:)

类型是具体的,一切都必须知道它在编译时处理什么。如果没有更清楚地了解最终目标,很难提出解决方案,你能提供一个更具体的例子吗?