为什么这样可行:
t="
"+$<.read;puts t.reverse==t ?"YES":"NO"
但是这个:
t="
"+$<.read;puts t==t.reverse ?"YES":"NO"
表示:
A.rb:2: syntax error, unexpected tCHAR, expecting $end
"+$<.read;puts t==t.reverse ?"YES":"NO"
^
我使用ruby 1.9.2p290(2011-07-09)[i386-mingw32]
样本STDIN字符串为XX.\n...\n.XX\n
。
答案 0 :(得分:2)
看起来Ruby正在将后者解析为对#reverse?
的潜在调用。当以另一种方式切换时,消除了这种模糊性。在条件周围添加括号应该允许它双向进行。