Ruby Matrix set_element是私有的吗?
发布时间:2020-12-17 03:27:42 所属栏目:百科 来源:网络整理
导读:在Matrix类的实例上调用set_element时,我收到以下错误 NoMethodError: private method ‘set_element’ called for Matrix[[0,0],[0,0]]:Matrix 但是set_element列在文档中的公共实例方法下 Matrix#set_element 另外,set_element是[]=(i,j,v)的别名,使用此方
在Matrix类的实例上调用set_element时,我收到以下错误
NoMethodError: private method ‘set_element’ called for Matrix[[0,0],[0,0]]:Matrix 但是set_element列在文档中的公共实例方法下 Matrix#set_element 另外,set_element是[]=(i,j,v)的别名,使用此方法我收到以下错误 ArgumentError: wrong number of arguments (3 for 2) 没有任何意义,任何帮助表示赞赏. Ruby 1.9.2 p180 解决方法
文档不正确.如果你看一下1.9.1中的matrix.rb文件,你会看到:
def []=(i,v) @rows[i][j] = v end alias set_element []= alias set_component []= private :[]=,:set_element,:set_component 所以这三种方法都存在,但它们被明确地设置为私有. 一些快速的实验表明,文档中的许多方法实际上都是私有的.手册页顶部有一大块文档,列出了显然应该是可用方法的内容;该列表与rdoc生成的列表不匹配,因此存在一些混淆. 我得到的印象是Matrix的实例就像Fixnum和Number一样是不可变的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |