Scala中Some、Option、Nonde的解释及使用案例
8,762 阅读
Scala中用类Option来表示某个变量可能为空的情况,它有两个子类,一个是Some,一个是None,如果一个变量A可能为空,可以将这个变量设置为Option[A],在用的时候进行判断,可以避免出现Null错误。
在实际中一般使用方式如下,假设某个方法可能需要一个参数,可以在当前类中设置一个set方法,用了set,这个参数就有值,那么执行一种情况,如果在调用该方法前,没有调用过set方法,那么这个参数为空执行另一种方法。我们来看一个实例,在spark的KMeans方法中,KMeans类定义了如下一个变量initialModel,它是Option[KMeansModel]类,用来保存载入已存在的模型或者是初始化类中心点的,可以存在也可以为空。在实际情况中,我们可能需要载入之前的KMeansModel实例或者是定义一个初始化的类中心,也可能是直接使用KMeans运行,前者需要先调用setInitialModel方法,后者不需要。那么前者情况下initialModel变量的结果是Some(model),后者是None,在执行算法的时候,KMeans需要先判断initialModel是否已经存在,若存在则使用之前的中心点,否则随机初始化:
