我正在努力解决以下问题:
has_content = -> (a) { a!=nil && a.strip != ''} c = ' ' has_content.call(c) => false c.has_content => true
为什么回答不同?很明显,我缺乏一些Proc / lambdas知识。
答案 0 :(得分:1)
我相信该代码中缺少导致此类行为的内容。
没有为String定义 has_content
,所以除非你之前定义它,否则它应该引发错误
1.9.3p429 :002 > ''.has_content
NoMethodError: undefined method `has_content' for "":String
from (irb):2
from /Users/weppos/.rvm/rubies/ruby-1.9.3-p429/bin/irb:12:in `<main>'
作为旁注,这是代码的替代版本
has_content = ->(a) { !a.to_s.strip.empty? }
这是一个例子
has_content.(nil)
# => false
has_content.('')
# => false
has_content.(' ')
# => false
has_content.('hello')
# => true