Перебор массива в Ruby и добавление строки после числа - PullRequest
0 голосов
/ 25 декабря 2018

Как я могу перебрать массив чисел и добавить строку к выводу в каждой итерации?Я использую «Put» для отображения числа.

Массив

nums = Array[1, 2, 3, 4, 5]

Итерирование массива

for i in nums
    puts i + " Carrots"
end

Я получаю этот ответ

test.rb:40:in `+': String can't be coerced into Integer (TypeError)String can't be coerced into Integer (TypeError)String can't be coerced into Integer (TypeError)

Ответы [ 3 ]

0 голосов
/ 25 декабря 2018

Просто из любопытства:

puts [1, 2, 3, 4, 5].product([" Carrots"]).map(&:join)
#⇒ 1 Carrots
#  2 Carrots
#  3 Carrots
#  4 Carrots
#  5 Carrots
0 голосов
/ 27 декабря 2018

Вы можете преобразовать число, используя метод to_s, и объединить его с +, или использовать интерполяцию, но цикл с для не похож на метод ruby ​​

Использование итераторов

nums = [1, 2, 3, 4]

nums.each do |num|
  puts num.to_s + ' Carrots'
end

nums.each do |num|
  puts "#{num} Carrots"
end

Примечание: Используйте простые кавычки, если не будет использоваться интерполяция

Более элегантное решение в одну строку

puts nums.map {|num| num.to_s + ' Carrots'}

puts nums.map {|num| "#{num} Carrots"}
0 голосов
/ 25 декабря 2018

Метод 1: Использование to_s

Вы можете использовать to_s для преобразования целого числа в строку.

nums = Array[1, 2, 3, 4, 5]

for i in nums
    puts i.to_s + " Carrots"
end

вывод:

1 Carrots
2 Carrots
3 Carrots
4 Carrots
5 Carrots

Метод 2: Использование строковой интерполяции

nums = Array[1, 2, 3, 4, 5]

for i in nums
    puts "#{i}  Carrots"
end

Вывод:

1  Carrots
2  Carrots
3  Carrots
4  Carrots
5  Carrots

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...