2

使用 Ruby 1.9。我有以下内容:

add1 = [record['a'], record['b'], record['c']]
full_add = add1.reject!(&:empty?).join(", ")

# scenario 1
record['a'] = 'Good'
record['b'] = ''
record['c'] = 'Fine'
# >> Good, Fine

# scenario 2
record['a'] = 'Good'
record['b'] = 'Boy'
record['c'] = 'Fine'
# >> undefined method `join' for nil:NilClass (NoMethodError)

当我检查full_add场景 2 时,它返回错误,因为没有数组为空。我应该如何解决这个问题?谢谢。

4

1 回答 1

2

你不能在一行中做到这一点:

add1 = [record['a'], record['b'], record['c']]
add1.reject!(&:empty?) if add1.include? ""
full_add = add1.join(", ")

小心带有 ! 后缀的方法,这种方法会改变对象本身,并且不能使用它们的返回值

于 2013-10-18T17:11:29.763 回答