Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ruby中的Try方法_Ruby - Fatal编程技术网

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,则可以使用安全导航操作符代替Rails
try

@arr.collect { |e| e&.title }

您可以使用以下方法:

@arr.collect {|e| e.respond_to?(:title) ? e.title : nil }
或者,如果您的Ruby版本>2.3.0,则可以使用安全导航操作符代替Rails
try

@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
包含响应
标题的对象,而其他对象不响应?