为什么这样可以正常工作:
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
。 最佳答案
看起来Ruby正在将后者解析为对#reverse?
的潜在调用。当以其他方式切换时,这种歧义将被消除。在条件周围加上括号应使它可以同时使用。
关于ruby - 将x与x.method进行比较时出现古怪的语法错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14270622/