Ruby многомерные методы получения / установки (как в C ++) - PullRequest
0 голосов
/ 29 апреля 2019

есть ли способ иметь 'C' / 'C ++' - как многомерные переменные, то есть определять многомерные методы получения / установки в скобках? (без обращения к хэшу)

Нельзя ли определить

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

такой, что

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

Хэш не должен компенсировать правильную таблицу. И я думаю, что я мог вспомнить, как однажды было показано в stackoverflow, как определять многомерные скобки как метод. Тем не менее, я не могу найти нить, если она существует.

1 Ответ

1 голос
/ 30 апреля 2019

Так как C ++ и Ruby настолько фундаментально различны, я не уверен, что вопрос

есть ли способ иметь 'C' / 'C ++' - подобные многомерные переменные в Ruby?

даже имеет смысл.

Вместо того, чтобы пытаться имитировать функцию C ++ в Ruby, вы должны спросить себя, в чем заключается настоящая проблема , которую вы хотитерешить и как этого добиться, используя общие возможности Ruby.

Когда вы видите "1015 *" оператор "в Ruby, в большинстве случаев это действительно оператор []возвращение массива или хэша (как уже указывалось в му-слишком коротком).

Например,

$ 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" 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...