return s не является необходимым и неправильным. Не требуется, потому что Ruby возвращает все, что выполняется последним и неправильным, потому что вы не меняете s, вы создаете новую строку.
Кроме того, вы можете просто добавить метод shuffle непосредственно в String, если вы сочтете это полезным, но остерегайтесь monkeypatching too much.
class String
def shuffle
self.split('').shuffle.join
end
end
Ответ 3
shuffle не принимает (и не требует) аргументов. Использование: