【问题标题】:exception in if statement [closed]if语句中的异常[关闭]
【发布时间】:2014-01-18 12:17:55
【问题描述】:

我在 ruby​​ 中为一个在人员列表(名为@personList)上迭代的类编写了一个搜索器函数。 它面临一个异常。

我的代码‌:

def search (nCode)
    for x in @personList
        if x.nCode == nCode 
            x.to_s
    end
end

我使用 each 编写了相同的代码,它也面临同样的异常。 我的代码有什么问题? (我是 Ruby 新手!我无法解决这个问题)

【问题讨论】:

  • 请添加@personList 包含的内容。
  • 并提供您的异常的具体细节。

标签: ruby if-statement for-loop each


【解决方案1】:

if 由一对换行符分隔:

x.to_s if x.nCode == nCode 

这个if 需要一个明确的end

if x.nCode == nCode 
    x.to_s
end

您在第一个示例中打开了三个块(deffor..inif),但只关闭了两个。您的缩进表明if 是您没有关闭的那个。因此,您有语法错误。否则,两个示例在功能上是相同的。

【讨论】:

    【解决方案2】:

    Ruby if 需要 end 才能完成。如果你使用 end 作为你的异常代码,它会起作用。

    if x.nCode == nCode 
        x.to_s
    end
    

    对于第二种情况,那行得通或你,它实际上是在一行中完成条件和执行。这就是为什么它不需要任何end,它对你有用。

    您可以从here 找到有关if 的更多详细信息。

    【讨论】:

      猜你喜欢
      • 2012-12-31
      • 1970-01-01
      • 2012-11-26
      • 1970-01-01
      • 2022-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-05
      相关资源
      最近更新 更多