ruby中的Try方法
我试图从如下数组中收集元素ruby中的Try方法,ruby,Ruby,我试图从如下数组中收集元素 @arr.collect(&:title) 但有时@arr可能有一些值,并抛出未定义的方法错误。所以使用试试下面的 那么,我如何使用try方法处理它呢?您可以使用以下方法: @arr.collect {|e| e.respond_to?(:title) ? e.title : nil } 或者,如果您的Ruby版本>2.3.0,则可以使用安全导航操作符代替Railstry: @arr.collect { |e| e&.title } 您可以使用以
@arr.collect(&:title)
但有时@arr可能有一些值,并抛出未定义的方法错误。所以使用试试下面的
那么,我如何使用try
方法处理它呢?您可以使用以下方法:
@arr.collect {|e| e.respond_to?(:title) ? e.title : nil }
或者,如果您的Ruby版本>2.3.0,则可以使用安全导航操作符代替Railstry
:
@arr.collect { |e| e&.title }
您可以使用以下方法:
@arr.collect {|e| e.respond_to?(:title) ? e.title : nil }
或者,如果您的Ruby版本>2.3.0,则可以使用安全导航操作符代替Railstry
:
@arr.collect { |e| e&.title }
如果@arr.present?@user3078630@arr不能为空,则可以添加空@arr的检查,如:@arr.collect(&:title)。它可以有一些值。但是它为nil返回未定义的方法“title”:nilclass你的ruby版本是什么?@rubyist听起来很可疑。为什么@arr
包含响应title
的对象和其他不响应的对象?如果@arr.present?@user3078630@arr不能为空,您可以添加一个空@arr检查,例如:@arr.collect(&:title)。它可以有一些值。但是它为nil返回未定义的方法“title”:nilclass你的ruby版本是什么?@rubyist听起来很可疑。为什么@arr
包含响应标题的对象,而其他对象不响应?