Ruby/Избранное с RubyNews: различия между версиями

Содержимое удалено Содержимое добавлено
Строка 160:
== Генерация пароля или новый взгляд на метод <code>rand</code> ==
 
Рассмотрим классическую задачу генерации пароля. Алгоритм решения прост до безобразия: формируем словарь символов из которых будет состоять пароль и затем случайным образом выбираем символы из этого словаря. Результат формируется в виде строки и выводится на экран. Для решения данной задачи "в одну строчку" мы будем использовать возможность инициализации массива через блок, которая появилась в Ruby начиная с версии 1.8. Итак, сразу оговоримся, что наш пароль будет состоять из латинских букв верхнего и нижнего регистра, а также из арабских цифр. Решения данной задачи тогдетогда будет выглядеть так:
<source lang=ruby>chars = ['0'..'9','a'..'z','A'..'Z'].map{ |r| r.to_a }.flatten
puts Array.new(8){ chars[ rand( chars.size ) ] }.join</source>