到目前为止,我有一个简单的ruby程序,该程序有2个步骤:1.向用户询问他们要跟踪的股票代码的数量。2.请求用户输入这些符号
puts("How many stocks do you want to track ?")
numStocks = gets.chomp()
puts("Please enter #{numStocks} stock symbols: ")
array = Array.new(numStocks.to_i)
for i in 1..numStocks.to_i do
array.insert(i-1, gets.chomp())
end
puts("Stock symbols entered ... #{array}")
打印到控制台上的输出是 Stock symbols entered ... ["aapl", nil]
nil
在这种情况下,为什么数组的最后一个元素是什么呢?
Array.new
创建一个新数组,并用您指定的元素数量填充它。Array.new(3)
与相同[nil, nil, nil]
。Array.new(2, 'a')
与相同['a', 'a']
。
然后array.insert
,您可以使用which添加而不是替换元素。您可以array[i-1] = gets.chomp()
用来设置值,但实际上根本没有理由以这种方式初始化数组。
编写这一切的“更多Ruby”方法是:
puts 'How many stocks do you want to track ?'
num_stocks = gets.chomp
puts "Please enter #{num_stocks} stock symbols: "
array = 1.upto(num_stocks.to_i).map do
gets.chomp
end
puts "Stock symbols entered ... #{array}"
编辑:另外,值得一提的是,在Ruby中,数组不是固定大小的。您可以根据需要添加和删除元素。如果我不得不猜测,您已经习惯了C之类的语言,您必须先定义数组的大小,然后再永久定义它的大小(这就是我想您正在尝试做的事情)。
另外,在Ruby中,使用并不是很常见Array.new
。大多数时候,人们只是通过键入数组文字来定义数组。
array = [1,2,3]
红宝石数组更像其他语言中的列表。它支持push
(尽管<<
是添加到数组的更常见方法)pop
,和其他类似列表的功能。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句