ruby - 将x与x.method进行比较时出现古怪的语法错误

标签 ruby syntax-error

为什么这样可以正常工作:

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/

相关文章:

ruby - 如何实现数组中表达式的操作顺序?

sql - Rails 服务器命令错误

php - Codeigniter 2.2 解析错误 : syntax error, 意外 T_CONSTANT_ENCAPSED_STRING

android - 错误 - 没有找到适合 ArrayAdapter 的构造函数

c - 在 C 中定义导致错误之前的函数声明

ruby-on-rails - Action Mailer Rails 的动态默认值

ruby - 在没有产品方法的情况下组合数组

ruby-on-rails - 模型中的 SystemStackError(堆栈级别太深)

java - 在 MySQL 工作台上运行良好的连接命令的 MySQLSyntaxErrorException

php - PHPBB解析错误: syntax error, unexpected '}' overall_header.html.php