- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
module Access
def last
self[-1]
end
def start_end
self[0] + last
end
end
module StringExt
refine String do
include Access
end
end
using StringExt
puts 'abcd'.last # => d
puts 'abcd'.start_end
当一个类被太多连接方法细化时,我认为最好将它们提取到一个模块中。但是,在上面的示例中,当一个方法调用另一个方法时出现问题(请参阅最后一条语句),并产生以下错误。
在“start_end”中:“abcd”的未定义局部变量或方法“last”:String (NameError)
类似issue是使用全局变量解决的,它也适用于我的示例。但我正在寻找另一种更好的方法来组织被调用的方法并避免全局化。
建议如何更好地组织这些方法?
最佳答案
这是我最终使用的一般模式。基本上我没有找到在某种程度上使用全局标识符的解决方法。但这可以通过制作这些全局类/模块来相当干净地完成。举个例子会更清楚:
module StringPatches
def self.non_empty?(string)
!string.empty?
end
def non_empty?
StringPatches.non_empty?(self)
end
def non_non_empty?
!StringPatches.non_empty?(self)
end
refine String do
include StringPatches
end
end
class Foo
using StringPatches
puts "asd".non_empty? # => true
puts "asd".non_non_empty? # => false
end
StringPatches
上的类方法不会导出到 using
。但是由于类/模块是常量(全局变量),它们可以从任何地方访问。
关于ruby - 在 ruby 细化 block 中组织长代码的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43089442/
我正在尝试缩小此图像,但它会不断失真。 这是我应用细化的相关代码。我也尝试过使用“thin”功能而不是“skeletonize”,但结果相似。 from skimage.morphology impo
好的,据我所知,目前我们有两种方法 首先是我可以在给定脚本中使用的一些 javascript。但这会关闭所有内容的右键单击。 window.oncontextmenu = function() {
在 MarkLogic 中如何找到元素所在的文档 URI 匹配的值为1742 这里是示例 XML 文档: 1742 1742 TT 1742
摘要:我有一个数据集,其收集方式使得维度最初不可用。我想获取本质上是一大块无差别的数据,并为其添加维度,以便可以对其进行查询、子集化等。这是以下问题的核心。 这是我拥有的 xarray 数据集: D
我有一个大型数据集(请参阅下面的示例格式),我需要进行以下思考: 确定第 1、2、5 列中出现的重复值 - 如果全部重复,那么我需要删除多余的行并对第 8 列中的值进行平均(这对于我将发布的代码是成功
我正在做一个练习项目,其中 iOS 应用程序打印来自 jsonplaceholder.typicode.com 的/posts 列表,当用户选择一个时,加载详细 View Controller 并显示
module Access def last self[-1] end def start_end self[0] + last end end module Stri
我是一名优秀的程序员,十分优秀!