我刚刚开始使用Ruby,我面临以下问题。
ip_array = [1.1.1.1,2.2.2.2]
for i in 0..1
puts `ping #{ip_array[#{i}]}`
end
这给了我一个错误:意外的IDENTIFIER,期待']'
然而这是有效的
ip_array = [1.1.1.1,2.2.2.2]
for i in 0..1
puts `ping #{ip_array[i]}`
end
有人可以解释一下,我认为#{ip_array[#{i}]}
比#{ip_array[i]}
答案 0 :(得分:4)
实际上版本#{ip_array[i]}
是正确的,因为变量在ruby字符串中使用语法#{<var_name>}
替换,如您所见here。
所以你不能在变量名中使用hashtag('#'),就像你在#{ip_array[#{i}]
中尝试一样,因为这标志着新变量替换的开始,而之前的替换尚未完成。
#ip_array[i]
只是在字符串中替换的一个变量而不是两个变量。