我根据除后(/)运算符之间的空格得到不同的错误。让我们考虑以下示例。
$ ruby -e "a /100"
-e:1: unterminated string meets end of file
-e:1: syntax error, unexpected tSTRING_END, expecting tSTRING_CONTENT or tREGEXP_END or tSTRING_DBEG or tSTRING_DVAR
$ ruby -e "a / 100"
-e:1: undefined local variable or method `a' for main:Object (NameError)
第二个示例给出了正确的错误消息,而第一个示例给出了奇怪的错误。我做了一些研究,但无法找出背后的原因。反正有没有解决这个问题以给出正确的错误消息?
答案 0 :(得分:1)
如果我尝试使用Ruby 2.3.1,我收到此消息:-e:1: unterminated regexp meets end of file
这似乎有效,因为" /"通常是正则表达式标记...
在错误消息的第二行,它表示期待tREGEXP_END
所以,我认为,一切都很好。
答案 1 :(得分:1)
我在终端尝试了这个并且得到了相同的正则表达式错误:
$ ruby -e "a /100"
-e:1: unterminated regexp meets end of file
似乎/100
被解释为正则表达式。简单的解决方案是遵循正确的ruby语法(即您的第二个示例:$ ruby -e "a / 100"
)。通常,建议在ruby运算符周围添加空格,如ruby style guide所示。