Scala 编程实战学习1-------如何处理代码中的NULL值?

目录

一、代码实现设计原则,即:应用程序尽可能分解成多个小的函数,每个函数实现一个完好的单一功能;

二、代码中NULL值处理策略;


       今天阅读《Scala编程实战》一书中的如何有效处理代码中的NULL值”小节,写下自己的心得体会,仅供参考,如有错误,还请各位指出,不胜感激,谢谢!

     我记得今年3月份有次电话面试,面试官问我:在写Spark代码时,需注意哪些问题? 我当时支支吾吾没有说出来,当时确实也没啥想法,总觉得写代码还有啥注意事项,撸袖子开干就行;如今在面对这个问题,我会从以下两方面陈述:

一、代码实现设计原则,即:应用程序尽可能分解成多个小的函数,每个函数实现一个完好的单一功能;

     模块化的设计原则,同时每个函数尽可能按照纯函数(pure function)的理念去设计,开发之前优先把代码的整体实现架构想好、设计好,比如需要多少个函数,有多少个公用方法等,别着急实现,思考、设计很重要,代码实现是优先级最低了.

二、代码中NULL值处理策略;

       开发中遇到问题最多的就是空指针异常(NullPointerException),这个问题确实是比较头疼的,所以在思考如何有效的避免这个问题,而不是等问题发生解决这个问题?

  1.   声明变量时,用Option[T]代替,而不是用占位符_;
class User(email: String, password: String){
  
    var firstName = None: Option[String]
    
    var lastName = None: Option[String]
    
    var address = None: Option[Address]
}

 

  1.  方法返回类型定义为Option[T].
 
// 从指定路径读取文件,并捕捉异常
 def readTextFile(fileName: String): Option[List[String]] = {
    
    try{
      
      Some(io.Source.fromFile(fileName).getLines().toList)
      
    }catch{
      
      case e: Exception => None
    }
      
  }

       Option[T] 包含0 个和1个元素的集合,其中None 标识无,Some[T]标识有,但Option的缺点是报异常后只能返回None,无法提供错误信息,不利于开发定位,故推荐用Try/Success/Failure(scala 2.10以上版本支持)用法替代Option;

       以上只是在学习scala编程实战中的一些方法论,后续也会应用到工作中,让自己的代码变得更优雅,效率更高,可维护性更强,书看的太少,对scala基础掌握的不扎实,一知半解,后续会随着《scala编程实战》一书深入学习,把scala的基础打牢,一层一层的揭开scala的面纱,同时在学习的过程中,对所学所想进行深度总结,以此来巩固学习成果;

 

你可能感兴趣的:(scala)