【发布时间】:2013-06-16 23:03:22
【问题描述】:
对于个人作业,我正在尝试使用数字时钟程序来显示“大”数字。
一个 ruby 程序,它的时钟部分来自存储在数组中的字符串,然后是一个可以将任何数字显示为“大数字”的例程(尚未完全编写)。
这是为了帮助我了解更多关于操作哈希和遍历数组、连接字符串等的知识。
我现在被这个困住了:
all_nums=''
(0..3).each do |num|
all_nums+= (line_parts[num][0].values).to_s
#puts line_parts[num][0].values
end
puts all_nums
因为我得到了无法转换为字符串的数组元素,即
ruby digital_clock,rb
[" == "]["| | "]["| | "][" == "]
但是当我只是 puts 他们时(从底部注释掉第 3 行)没关系,但是我得到了字符串,即
ruby digital_clock.rb
==
| |
| |
==
我希望能够构建字符串(在本例中为大 0),但我只能输出片段,并且无法将它们分配给变量并打印它。我怎么能这样做?
完整的程序是:
top= ' == | == == | | == | == == == '
top_middle= '| | | __| __| |__| |__ |__ | |__| |__|'
bottom_middle='| | | | | | | | | | | | |'
bottom= ' == | == == | == == | == |'
number_parts=[{},{},{},{},{},{},{},{},{},{}]
line_parts=[[],[],[],[]]
['top','top_middle','bottom_middle','bottom'].each_with_index do |one_line, i|
number_parts=[{},{},{},{},{},{},{},{},{},{}]
(0..9).each do |the_num|
number_parts[the_num] = {one_line.to_sym => eval(one_line)[the_num*5,5].to_s}
end
line_parts[i]= number_parts
end
all_nums=''
(0..3).each do |num|
all_nums+= (line_parts[num][0].values).to_s
#puts line_parts[num][0].values
end
puts all_nums
【问题讨论】:
-
不要只给出一个冗长的程序,尤其是当它不起作用时。告诉你你在做什么。
-
在顶部添加了更多信息 :)
-
本来我打算只给出有问题的部分,但当我这样做时,通常会被告知请展示整个程序:)