使用sum而不是+运算符在groovy中添加Floats

时间:2015-07-23 18:18:26

标签: groovy

在groovy中,我们为什么要添加这样的浮点数:

<div class="form-group">  
   <label class="control-label" >New Dropdown</label>                          
   <select>
     data-ng-model="engineer.currentActivity"
     data-ng-options="c.name for c in sampleProductCategories[0].products"
     ng-selected="setProductId(c)"
   </select>
</div> 

不仅仅是这样:

class SomeCommand {
  Float a = 0
  Float b = 0
  Float c = 0
  Float d = 0
  Float e = 0
  Float f = 0

  Float getTotal() {
    [a, b, c, d, e, f].findAll { it }.sum() as Float
}

基本上我的问题是:在集合上使用sum而不是简单地添加它们有什么好处或好处?

1 个答案:

答案 0 :(得分:0)

好的,这是我调查的结果。处理对象而不是原语时,我们需要考虑空值。以下是一个详细说明的测试用例:

groovy:000> Float a = null; Float b = 0; a+b
ERROR java.lang.NullPointerException:
Cannot invoke method plus() on null object
    at groovysh_evaluate.run (groovysh_evaluate:2)
    ...

groovy:000> Float a = null; Float b = 0; [a,b].findAll() {it}.sum()
===> null

groovy:000> Float a = null; Float b = 0; [a,b].findAll() {it!=null}.sum()
===> 0.0

另请参阅this SO问题,以便从集合中删除空值。