Ruby 多维 getter/setter 方法(类C++)



有没有办法拥有类似"C"/"C++"的多维变量,即定义多维括号的getter/setter方法?(不诉诸哈希(

不能定义吗

def [][]=(a, b, value)
  ...
end

这样

a = Integer.new
a[1][1] = 2

哈希不应补偿正确的表。我想我记得一旦在堆栈溢出上显示如何将多维括号定义为方法。然而,我找不到线程,如果它存在的话。

由于 C++ 和 Ruby 有着如此根本的不同,我不确定这个问题

有没有办法在 Ruby 中拥有类似"C"/"C++"的多维变量?

甚至有道理。

与其努力模仿 Ruby 中的C++特性,不如问问自己想要解决的真正问题是什么,以及如何使用常见的 Ruby 特性来实现它。

当你在 Ruby 中看到[][]"运算符"时,大多数时候实际上是返回数组或哈希的[]运算符(正如 mu-is-too-short 已经指出的那样(。

例如

$ irb
2.6.2 :001 > a = Array.new(3, "0")
 => ["0", "0", "0"] 
2.6.2 :002 > b = Array.new(3, a)
 => [["0", "0", "0"], ["0", "0", "0"], ["0", "0", "0"]] 
2.6.2 :003 > b[1][1]
 => "0" 

相关内容

最新更新