gpt4 book ai didi

像 Javascript 中的 Object.prototype 这样的 Ruby 全局原型(prototype)设计?

转载 作者:数据小太阳 更新时间:2023-10-29 08:40:38 25 4
gpt4 key购买 nike

我注意到像 Pry、Yaml 和其他一些 gem 似乎可以为每个对象(包括字符串对象)制作原型(prototype),我很乐意为我制作的 HAML 扩展做同样的事情,这样我就可以即时转换部分。基本上我想要我自己的“%time”.HAML_partial_render,关于如何做到这一点有什么想法吗?

最佳答案

Ruby 有公开课,所以获得你想要的东西的最快方法是这样的:

class String
def HAML_partial_render
# your code
end
end

如果你想让它更干净一些,你可以创建一个模块,然后将其混合到字符串中:

module HamlRendering
def HAML_partial_render
# your code
end
end

class String
include HamlRendering
end

这也会让您能够根据需要进行即时扩展,而不是污染整个对象空间:

"foo".extend(HamlRendering).HAML_partial_render

但如果你需要在任何地方都使用它,那会变得困惑。

有一个关于称为 Refinements 的概念的提议正在考虑中,应该为 Ruby 2.0 清理这个问题,但目前,我认为以上述方式之一打开类(class)是你最好的选择。

关于像 Javascript 中的 Object.prototype 这样的 Ruby 全局原型(prototype)设计?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7235016/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com