微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Ruby调用方法之前检查是否为nil

我在Ruby中有一个字符串,我正在调用strip方法删除前导和尾随空格.例如
s = "12345 "
s.strip

但是如果字符串为空,我会收到以下错误.

NoMethodError:未定义的方法`strip’为nil:NilClass

我使用的是Ruby 1.9,最简单的方法是在调用strip方法之前检查该值是否为nil?

更新:

我在一个数组中的元素上尝试过,但是遇到了同样的问题:

data[2][1][6].nil? ? data[2][1][6] : data[2][1][6].split(":")[1].strip

解决方法

Ruby 2.3.0添加一个安全的导航操作符(&),它在调用方法之前检查nil.
s&.strip

如果s为零,它将返回nil,而不是提高NoMethodError.

原文地址:https://www.jb51.cc/ruby/273631.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐