Превращение хеша в строку пар "имя-значение"

Вы пытались установить Петлевой Адаптер MS и попытаться осуществить сниффинг на том адаптере с Вами любимого приложения сниффинга?

Также, если я помню correctluy NAI Сниффер , ссылка действительно использовала для имения петлевых возможностей сниффинга, но это было некоторое время, я использовал любое решение...

9
задан jerhinesmith 1 December 2009 в 03:10
поделиться

2 ответа

Это, наверное, лучшее, что вы можете сделать. Вы можете перебирать пары в хэше, строя строку по ходу. Но в этом случае промежуточную строку нужно будет создавать и удалять на каждом шаге.

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

5
ответ дан 4 December 2019 в 09:13
поделиться

Из The Pragmatic Programmer's Guide :

Несколько параметров, переданных в yield преобразуются в массив, если блок имеет только один аргумент.

Например:

> fields = {:a => "foo", :b => "bar"}
> fields.map  { |a| a } # => [[:a, "foo"], [:b, "bar"]]

Итак, ваш код можно упростить следующим образом:

> fields.map{ |a| a.join('=') }.join('&') # => "a=foo&b=bar"
8
ответ дан 4 December 2019 в 09:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: