为什么Ruby打印的是变量而不是字符串?

为什么Ruby打印的是变量而不是字符串?,ruby,Ruby,谨此陈辞 print @b>@d?("S";@b+=1): @b<@d?("N";@b-=1):"" print@b>@d?(“S”@b+=1):@bb+1的值是此处返回的最后一个值:(“S”@b+=1),因此,print将对其进行评估。让我们尝试一个更简单的例子: x = 0 # => 0 puts (true ? ("X is incremented #{x+=1}"; "Only this is printed though") : "Never here") # O

谨此陈辞

print @b>@d?("S";@b+=1): @b<@d?("N";@b-=1):""

print@b>@d?(“S”@b+=1):@bb+1的值是此处返回的最后一个值:
(“S”@b+=1)
,因此,
print
将对其进行评估。让我们尝试一个更简单的例子:

x = 0
# => 0 
puts (true ? ("X is incremented #{x+=1}"; "Only this is printed though") : "Never here")
# Only this is printed though
# => nil 
x
# => 1 

尽管第一条语句被执行,它递增
x
,但在ruby方法中,只有最后一条语句作为参数传递给
put

,默认情况下始终返回最后一行。将代码更改为

print @b>@d?(@b+=1; "S"): @b<@d?(@b-=1; "N"):""

print@b>@d?(@b+=1;“S”):@bSmall如果你看不懂它就没用了。这是一个编码挑战。对,我明白了,但当人们试图帮助时,通过消除混淆来帮助他们是很好的:)现在我明白了!我不想让你听起来很快。互联网需要的是音调,而不是让交流更容易的新技术。这是我会记住的好建议。不用担心;我没有读到任何不尊重,也没有任何不尊重的意思。