как вернуть случайные строки в верхнем и нижнем регистре из массива строчных букв - PullRequest
0 голосов
/ 07 января 2019

Есть ли эффективный способ случайного возврата строки в верхнем или нижнем регистре? Я не хочу использовать upcase или downcase внутри массива следующим образом. Также Array будет содержать два имени, скажем, ["Cary", "Ursus"], и желаемый результат будет случайным образом одним из этих 4 результатов. 1- Меня зовут Кэри, или Меня зовут Кэри, или Меня зовут Урсус, или Меня зовут Урсус.

def random_case(name)
  name = ["jordan".upcase, "jordan".downcase]
  name.sample
end

puts "My name is #{random_case(name)}"

Ответы [ 2 ]

0 голосов
/ 08 января 2019

Просто чтобы иметь другой вариант:

def random_case(*names)
  name = names.sample.downcase
  [true, false].sample ? name.upcase : name
end

So

10.times do
  p random_case('Kirk', 'Spock')
end
0 голосов
/ 07 января 2019

А как насчет этого? 0 для верхнего регистра, 1 для нижнего регистра

def random_case(name)
  rand(2).zero? ? name.upcase : name.downcase
end

rand(2) возвращает 0 или 1.

Если вы хотите использовать методы случайным образом из массива

def random_case(name)
  name.public_send([:upcase, :downcase].sample)
end

Несколько имен в соответствии с просьбой в комментариях

def random_case(*names)
  names.map { |name| rand(2).zero? ? name.upcase : name.downcase }
end

Вы можете назвать этот последний с

random_case("Ursus", "Cary")

Последний запрос в комментариях

def random_case(*names)
  names.sample.public_send([:upcase, :downcase].sample)
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...