def secret_formala(PH)
jelly_beans = PH * 500
jars = jelly_beans / 1000
crates = jars / 100
return jelly_beans, jars, crates
end
start_point = 10000
beans, jars, crates = secret_formala(start_point)
puts "With a starting point of: #{start_point}"
puts "We'd have #{beans} beans, #{jars} jars, and #{crates} crates."
start_point = start_point / 10
puts "We can also do that this way:"
puts "We'd have %s beans, %s jars, and %s crates." % secret_formala(start_point)
puts
所以,这是我的代码和我的混淆,这对其他人来说可能看起来非常明显,但由于我还是Ruby的新手,它让我感到惊讶。我不明白的是1号线和1号线。 2“def secret_formula(PH)”和“jelly_beans = PH * 500”
我可以用任何代替“PH”的东西来运行,但代码是如何理解我拥有“PH”的地方使用的是“start_point”数字?为什么我没有收到错误?在第1行的“def secret_formula(PH)”之后将“()”放入“()”有什么意义?
答案 0 :(得分:2)
def secret_formala(PH)
def关键字决定了这是否是ruby中的方法。它以end
关键字结尾。
parens中有什么内容,在这种情况下是PH,这是你在调用它时传入方法的内容。例如,如果您将其称为secret_formula(10)
,则下一行将在代码内部读取jelly_beans = 10 * 500
。您并不总是需要在方法定义中包含parens。这是因为您可能不会总是将另一个值传递给此方法。您可能有一个方法只在内部执行某些操作,而不会给出任何其他信息。 PH本身在这里并不重要,它只是您用于传递它的值的名称。如果你愿意,你可以把它命名为“你好”。