【发布时间】:2019-03-12 02:23:16
【问题描述】:
我发现自己必须一直这样做,而当我赶时间时,我会将其包装在一个条件句中:
if !myhash.blank?
hash.each do |k,v|
do_something
end
end
或:
myhash.map{|k,v| do_something} unless myhash.blank?
一定有更干净的东西。
【问题讨论】:
-
您可以使用您设置的“null”哈希来返回一些可接受的默认值。也就是说,您将哈希定义为
hash = my_hash || default_hash。那么每次引用my_hash就不需要条件了;就在它第一次定义的时候。 -
由于空散列是一个可以循环的很好的值,你不需要
blank?:if myhash -
如果你有
nil,你期望Hash,这是一个错误,正确的反应是修复错误,这样你就不会得到nil,而不是解决nil!如果你“发现自己必须一直这样做”,那么你就有很多错误,你应该加强你的设计、开发、测试、代码审查和 QA 流程(以及,最终,你的招聘流程,所以你不会雇佣那些一开始就写出如此愚蠢的错误的程序员)! -
非常感谢乔格。我在家为我的业务编写代码。对不起,我太傻了。但既然我们是在给出建议,我对你的建议是要注意你的举止。我不在乎你的分数是多少,你的傲慢正在表现出来。
标签: ruby