Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум на Исходниках.RU > Ruby > [ruby] Разность ключей словаря


Автор: Romtek 14.07.11, 14:05
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
        # дано:
        x = { :abc => { :a=>1, :b=>2, :c=>3, :d=>4 } }
        y = { :abc => { :a=>1, :b=>2 } }
     
        # как получить z, имея x и y
        z = { :abc => { :c=>3, :d=>4 } }


Я написал так:
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    z = { :abc => x[:abc] - y[:abc] }
Есть ли ещё какой-нибудь простой способ нахождения разности словарей в Руби, не используя каких-либо расширений? Более универсальный, без указания ключа :abc.

Автор: Мохнатый 15.07.11, 05:51
Старый добрый оператор &, не?

Автор: Romtek 17.07.11, 12:31
Цитата Мохнатый @
Старый добрый оператор &, не?

Неа. В irb для Hash неизвестен метод `&'.

Добавлено
Я сначала написал "пересечение" словарей, а на самом деле это таки их разница.

Автор: deil 19.07.11, 12:14
Еще и рекурсивная разница?

Автор: XandoX 19.07.11, 14:14
Цитата deil @
Еще и рекурсивная разница?

скорее - глубока :)

Powered by Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)