我是Ruby的初学者。我试图打印如果一个对象是一个数组或一个整数,但我得到一个语法错误,我无法想象如何解决它。
D:\Ruby>ruby -c Learning-Ruby\loops_stuff.rb
Learning-Ruby/loops_stuff.rb:9: syntax error, unexpected keyword_else, expecting keyword_end
Learning-Ruby/loops_stuff.rb:11: syntax error, unexpected end-of-input, expecting keyword_end
这是我的代码
obj = ["a", 1, 3.6]
if object.is_a(obj)
puts "Is array: "
obj.each do |index|
puts index
elseif object.is_i(obj)
puts "Is integer: {#obj}"
else
puts "Is neither array or integer"
end
答案 0 :(得分:2)
关键字是elsif(中间没有e)
obj = ["a", 1, 3.6]
if obj.is_a?(Array)
puts "Is array: "
obj.each do |index|
puts index
end
elsif obj.is_a?(Integer)
puts "Is integer: #{obj}"
else
puts "Is neither array or integer"
end
在我的第一次红宝石会议中也发现了这一点
答案 1 :(得分:2)
另外,您可以使用case..when
语句(看起来更优雅):
case obj
when Integer
#some actions
when Array
#some actions
else
#some actions
end
答案 2 :(得分:0)
根据您打印的字符串,这可能是您想要编码的内容。
obj = ["a", 1, 3.6]
if obj.is_a?(Array)
puts "Is array: "
obj.each do |index|
puts index
end
elsif obj.is_a?(Integer)
puts "Is integer: {#obj}"
else
puts "Is neither array or integer"
end
输出结果为:
Is array:
a
1
3.6