Ruby:调用3:Fixnum的私有方法
|
我正在尝试学习此简单功能的细微差别,但不确定如何解决此NoMethodError问题。如何将“拆分”设置为公开而非私有?这样可以解决问题吗?
这是我的代码:
DATA = [3, 4, 5, 6, 7, 8]
DATA.each do |line|
vals = line.split
print vals[0] + vals[1], \" \"
end
这是我在IRB中运行此错误消息:
NoMethodError: private method `split\' called for 3:Fixnum
没有找到相关结果
已邀请:
3 个回复
荤碗
-该方法在
类中存在,但在
中不存在。 我认为您正在尝试执行以下操作:
孤捷侩
是在
上定义的方法
现在,您收到令人困惑的错误消息的原因有些有趣。碰巧的是,有一个ѭ9,它使脚本具有类似于Perl的简洁性。它将全局变量
拆分,该变量保留了
的最后结果。
但是由于混入到Object中,因此可以在脚本级别使用,留下了这样的问题,即曾经创建的每个类最终都有一个
方法。 如果运行普通的旧split(),系统中的每个对象都会响应,但幸运的是只会出现错误。 通过将其设为私有方法,它可以在脚本的顶层使用(因为“ Object”是打开的或类似的东西),但不会成为每个实例化对象的API的一部分。
艾食魄轻县
编辑:基于对连续对进行操作的愿望: