pry(main)> s = {:a =>2, :d=>'foo', :x => ' ', :n => true, :z => nil}
=> {:a=>2, :d=>"foo"}
pry(main)> s.each do |k,v| p k unless v.empty? end
NoMethodError: undefined method `length' for 2:Fixnum
我理解这是因为 fixnum 没有空方法。那么如何以一种巧妙的方式解决这个问题,而不是先找到数据类型然后检查它呢?我想打印那些k
有价值v
的东西。Yestrue
被认为是一个值,但不是一堆空格。对我来说,“有价值”是指非空字符和布尔值。