Ruby语法混淆括号和哈希

时间:2016-07-26 19:22:04

标签: ruby syntax brackets

目标:在odds数组上使用.each方法打印出数组中每个项的值的两倍。换句话说,将每个项目乘以2。

确保使用print而不是puts,因此输出显示在一行上。

code:

odds = [1,3,5,7,9]

odds.each do |x|
    x *= 2 
    print "#{x}"
end

在Codecademy上进行此练习,我对语法感到困惑,为什么需要围绕x的#{},以及为什么它只是:print" x&# 34;或打印#x"。哈希和括号有什么作用?令我困惑的是为什么红宝石没有打印出来#34;#{X}"而不是" x"由于被引号括起来,数字乘以2?以前的练习还包括哈希和大括号#{user_input},其中控制台打印我们输入的任何内容而不是打印出来#34;#{user input}"本身。

1 个答案:

答案 0 :(得分:0)

您无法print "x"并期望它打印x对象的值。如果你想打印x字母怎么办?所以,我们需要插值。 但是以这种方式使用的插值只有附带效果才能使x成为一个字符串。你可以不用插值来做同样的事情:

print x

无论如何,我可能会做

odds = [1,3,5,7,9]
odds.each { |x| print x * 2 }

关于插值:当你应该连接几个字符串时你可以使用它,它会很难看。例如

puts name + " " + surname
puts "#{name} #{surname}"

我更喜欢后者