Size: a a a

2020 March 06

Э

Эдем in RubyRush
Это к Фирташу
источник

RM

R M in RubyRush
Эдем
Женя с рекурсией выше намутил.

Я по рабоче-крестьянски:

def multiply_hash(*hashes)
 hashes.inject(Hash.new(1)) { |old, new| old.merge(new) { |_, o, n| o * n } }
end

h1 = {a: 5, b: 10}
h2 = {a: 2, b: 3, c: 20}
h3 = {      b: 9,        d: 4}

multiply_hash(h1, h2, h3)
# => {:a=>10, :b=>270, :c=>20, :d=>4}
😄
источник

ТК

Тимур Каримов... in RubyRush
Кто нибудь знает как получить $USER в виде строки в irb?
источник

И

Илья in RubyRush
Эдем
Это к Фирташу
источник

V

Valery in RubyRush
Эдем
Женя с рекурсией выше намутил.

Я по рабоче-крестьянски:

def multiply_hash(*hashes)
 hashes.inject(Hash.new(1)) { |old, new| old.merge(new) { |_, o, n| o * n } }
end

h1 = {a: 5, b: 10}
h2 = {a: 2, b: 3, c: 20}
h3 = {      b: 9,        d: 4}

multiply_hash(h1, h2, h3)
# => {:a=>10, :b=>270, :c=>20, :d=>4}
Небольшой коммент: Вмесето Hash.new(1) можно просто Hash.new, т.к. блок при методе merge вступает в действие только если объдиняемые хеши имеют одинаковые ключи.
источник

V

Valery in RubyRush
Тимур Каримов
Кто нибудь знает как получить $USER в виде строки в irb?
$User это глобальная переменная или переменная окружения?
источник

ТК

Тимур Каримов... in RubyRush
Valery
$User это глобальная переменная или переменная окружения?
в данном случае та что находится тут /home/пользователь
источник

V

Valery in RubyRush
ENV['USER']
источник

ТК

Тимур Каримов... in RubyRush
Valery
ENV['USER']
👍
источник

Э

Эдем in RubyRush
Valery
Небольшой коммент: Вмесето Hash.new(1) можно просто Hash.new, т.к. блок при методе merge вступает в действие только если объдиняемые хеши имеют одинаковые ключи.
Да. Если по кодстайлу, то вот так:

hashes.reduce({}) { |old, new| old.merge(new) { |_, o, n| o * n } }
источник

E

Eugene in RubyRush
Эдем
Женя с рекурсией выше намутил.

Я по рабоче-крестьянски:

def multiply_hash(*hashes)
 hashes.inject(Hash.new(1)) { |old, new| old.merge(new) { |_, o, n| o * n } }
end

h1 = {a: 5, b: 10}
h2 = {a: 2, b: 3, c: 20}
h3 = {      b: 9,        d: 4}

multiply_hash(h1, h2, h3)
# => {:a=>10, :b=>270, :c=>20, :d=>4}
Зачёт :)
источник

D

Danil in RubyRush
добрый день, подскажите пожалуйста, у меня есть массив с массивами и мне нужно оставить только по одному последнему не nil элементу .
Это лучше через .map сделать?
источник

RM

R M in RubyRush
А два хеша можно просто merge использовать чтоб перемножить да?
источник

RM

R M in RubyRush
Эдем
Да. Если по кодстайлу, то вот так:

hashes.reduce({}) { |old, new| old.merge(new) { |_, o, n| o * n } }
А hashes это массив из хешей будет, а зачем ({}) редьюсу? Чтобы он видел что за элемент принимать?
источник

VV

Vadim Venediktov in RubyRush
Стартовое значение
источник

VV

Vadim Venediktov in RubyRush
R M
А два хеша можно просто merge использовать чтоб перемножить да?
Объединятся ключи в один хэш
источник

E

Eugene in RubyRush
R M
А hashes это массив из хешей будет, а зачем ({}) редьюсу? Чтобы он видел что за элемент принимать?
по идее не нужен, кстати

merge же, ко всему, новый хеш создаёт в любом случае
источник

Y

Yauhen in RubyRush
мб кто-то пользовался гемом paraspec?
источник

Э

Эдем in RubyRush
R M
А hashes это массив из хешей будет, а зачем ({}) редьюсу? Чтобы он видел что за элемент принимать?
Кстати, да. Тогда, вообще, по красоте вот так:

def multiply_hash(*hashes)
 hashes.reduce { |old, new| old.merge(new) { |_, o, n| o * n } }
end

h1 = {a: 5, b: 10}
h2 = {a: 2, b: 3, c: 20}
h3 = {      b: 9,        d: 4}

multiply_hash(h1, h2, h3)
# => {:a=>10, :b=>270, :c=>20, :d=>4}
источник

Э

Эдем in RubyRush
R M
А два хеша можно просто merge использовать чтоб перемножить да?
Хоть два, хоть один, хоть сорок
источник