我写了以下内容:
greeting="i am awesome"
puts("I was saying that #{greeting}")
# => I was saying that i am awesome
当我将其更改为:
def showman
print("I am awesome ")
end
puts("I was saying that #{showman}")
# => I am awesome I was saying that
为什么首先打印方法输出,然后是字符串?为什么打印不像"I was saying that I am awesome"
?我该怎样做才能使输出成为这样的?
如果我将showman
功能修改为:
def showman
return ("I am awesome ")
end
然后它给出了所需的输出。为什么以这种方式使用return
会对输出产生影响?
答案 0 :(得分:3)
在第一个输出中,首先打印方法输出,然后打印字符串。
为了评估字符串,在评估整个字符串之前评估(season_average, active)
,这将打印showman
。
为什么它的打印不像“我说我很棒”
因为"I am awesome "
返回print
,并且字符串中的nil
插值计算为空字符串(nil
→"#{showman}"
→"#{nil}"
) 。如果没有""
,print
方法将返回字符串showman
。
为什么以这种方式使用return来改变输出?
使用"I am awesome "
并不是有用的。缺少return
正在发挥作用。