Ruby:变量中的变量
我刚刚开始学习Ruby,我面临以下问题Ruby:变量中的变量,ruby,Ruby,我刚刚开始学习Ruby,我面临以下问题 ip_array = [1.1.1.1,2.2.2.2] for i in 0..1 puts `ping #{ip_array[#{i}]}` end 这给了我一个错误:意外的标识符,应为']' 然而,这是可行的 ip_array = [1.1.1.1,2.2.2.2] for i in 0..1 puts `ping #{ip_array[i]}` end 有人能解释一下吗,我认为{ip_数组[{I}]}比{ip_数组[I]
ip_array = [1.1.1.1,2.2.2.2]
for i in 0..1
puts `ping #{ip_array[#{i}]}`
end
这给了我一个错误:意外的标识符,应为']'
然而,这是可行的
ip_array = [1.1.1.1,2.2.2.2]
for i in 0..1
puts `ping #{ip_array[i]}`
end
有人能解释一下吗,我认为
{ip_数组[{I}]}
比{ip_数组[I]}
实际上版本{ip_数组[I]}
是正确的,因为变量在ruby字符串中使用语法替换:{ip_数组[I]}
,如您所见
因此,您不能在变量名中使用hashtag(“#”),就像您在{ip_数组[#{i}]
中尝试的那样,因为这标志着新变量替换的开始,而之前的替换尚未完成
#ip_数组[i]
只是字符串中替换的一个变量,而不是两个变量。实际上,#{ip_数组[i]}
版本是正确的,因为变量在ruby字符串中使用语法进行替换:{}
因此,您不能在变量名中使用hashtag(“#”),就像您在{ip_数组[#{i}]
中尝试的那样,因为这标志着新变量替换的开始,而之前的替换尚未完成
#ip_数组[i]
在字符串中仅替换了一个变量,而不是两个变量