【问题标题】:About Ruby error 'kEnd'?关于 Ruby 错误“kEnd”?
【发布时间】:2010-09-29 23:04:16
【问题描述】:

在长时间休息后重新使用 Ruby 后,我遇到了很多麻烦。

我收到了很多“意外的 kEND”错误,我已将其追踪到以下几行。我没有遇到特定代码的问题,而是“意外 kEND”的概念。

if (condition)
  do-one-line-thing()

# inside of a loop...
if ( condition-evaluation-that-might-cause-error-during-run-time )
  do-something()
end

myarray.each { |element|
   do-soemthing-that-might-cause-error-during-run-time-for-some-but-not-all-values()
}

问题:

还有哪些其他因素会导致这些 kEND 错误?似乎 kEND 被用作一般的“Badness on line ##”错误?你能告诉我关于 kEND 错误的一般情况吗?

【问题讨论】:

    标签: ruby


    【解决方案1】:

    意外的 kEND 是在不应该出现的地方发现了 end 关键字。

    通常你已经关闭了太多的代码块,或者你有一些其他的语法问题。

    如果您粘贴有此问题的(完整)文件,我们可以指出错误...

    【讨论】:

    • 对,但是,在我的代码中,它没有语法问题,当评估/执行内部出现错误时,我似乎收到了 kEnd 错误,而不是像“错误:可以”这样的消息t cast nil to specific type!',所以我要求更多地了解这个奇怪的看似奇怪的错误......
    • 意外的 kEND 语法错误。粘贴有此问题的整个文件,我们将尝试提供帮助
    • @rlb.usa:当您遇到无法解释的错误时,做出诸如“我的代码没有语法问题”之类的声明并不是很有帮助。你显然在没有意识到的情况下犯了一些错误,否则你不会有问题。 (顺便说一句,您发布的第一个代码 sn-p 实际上缺少 end。)
    • 其实我觉得你是对的。条件语句中存在一些语法错误,因此语法错误消息仅在满足正确条件时才会出现。
    【解决方案2】:

    第一段代码有语法错误

    if (condition)
      do-one-line-thing()
    

    您始终必须使用end 显式关闭 if 子句。您不能像在许多其他语言中那样省略它,即使该块由单行组成。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多