如何打印名称Ex。 John1然后打印出John2,john3,john4,john5等无限数字的
我今天开始使用红宝石,我在解决这个问题时遇到了一些麻烦。我搜索了一些但找不到任何东西,所以我该怎么做?
要向某公司的员工大量生产帐户,我发现ruby是最聪明的写入它,我将永远不会再使用它
答案 0 :(得分:2)
保持简单。
puts (1..5).map { |n| "john#{n}" }
john1
john2
john3
john4
john5
课程Range include
是模块Enumerable(课程Array
,Hash
和其他课程)。通过这样做,Range
的实例(例如1..5
)可以使用所有Enumerable
的实例方法。这里使用了Enumerable
个实例方法之一:Enumerable#map。
答案 1 :(得分:1)
打印这样一个简单的系列:
n = 1
loop do
print 'john%d, ' % n
n += 1
end
永远不会终止,这有点愚蠢。也许你想要的是一个有限的范围:
list = (1..10).map do |n|
'john%d' % n
end.join(', ')
puts list
您可以根据需要调整开始值和结束值。
答案 2 :(得分:1)
也许在这里使用一个枚举器:
enum = Enumerator.new do |y|
i = 1
loop do
y << "John#{i}"
i += 1
end
end
enum.next #=> "John1"
enum.next #=> "John2"
enum.next #=> "John3"
然后使用Enumerator实例可用的任何一种方法。在这里,我们使用Enumerator#next
来获得下一个&#34; John&#34;字符串。
答案 3 :(得分:0)
一种简单的方法是使用for循环。首先声明一个空字符串变量,它将保存我们的内容。
要考虑的一个重要事项是循环的索引。如果它是最后一项,我们不希望添加", "
这是条件发挥作用的地方。如果索引小于最后一个,我们将添加一个逗号和空格,否则只添加名称。
通过将变量包装在#{
和}
str = ""
for i in 1..5
str += i < 5 ? "john#{i}, " : "john#{i}"
end
返回
"john1, john2, john3, john4, john5"