微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Scala 开发遇到的坑

1.  x.purchaseIntax.getorElse(BigDecimal(0.00)) 可以直接写成 x.purchaseIntax.getorElse(0)自动转换的

2. srcDataList.foldLeft(0.0)((s, v) => s+v.firstCostTax.todouble)) 优化成 srcDataList.map(_.firstCost).sum

3. 23/BigDecimal(23) 可会造成精度丢失,都转为BigDecimal进行乘除运算

4. 使用scala-sql(https://github.com/wangzaixiang)时,插入使用insert into table values  代替insert into table set,前者可批量插入,后者不能

5. Scala List底层使用链表实现(相当于Java中LinkedList,不要当成ArrayList),循环时不要用索引取元素,而使用foreach实现

6. 循环里面做list.filter在数据量很大时候会很慢,优化方案,使用HashMap代替filter

7. 禁止代码中使用魔法数字,必须定义常量或引用枚举

8.多表查询时,一定添加表别名,防止两个表中相同字段名冲突报错

9. Scala-sql中,能尽量使用sql""""""拼接sql(预编译,动态绑定参数),尽量不使用s""""""拼接sql

10. Scala尽量使用模式匹配代替if else, 如下推荐第一种写法:

 

11. 列表变量获取一个元素,如果列表为空,第一种会抛出异常 

 

12. Scala Map根据元素获取值尽量用getorElse方法获取禁止直接()或apply(),这两种如果Map中没有对应的key值,会直接抛异常

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐