我知道Ruby stdlib Matrix 是不可修改的,例如。
m = Matrix.zero( 3, 4 )
一个人不能写
m[0, 1] = 7
但是我非常想做......我可以用笨拙的编程来做到这一点,例如
def modify_value_in_a_matrix( matrix, row, col, newval )
ary = (0...m.row_size).map{ |i| m.row i }.map( &:to_a )
ary[row][col] = newval
Matrix[ *ary ]
end
...或作弊,例如
Matrix.send :[]=, 0, 1, 7
,但我想知道,这一定是人们一直遇到的问题。是否有一些标准的、习惯性的方法来做到这一点,而不必使用#send 方法强奸班级?