当前位置:   article > 正文

字节Scala面试题 --- None跟null的区别_scala中 ==none 和isnull区别

scala中 ==none 和isnull区别

 

今天参加字节跳动大数据岗位的面试。在开始说明实际面试问题之前,大家可以先思考一个问题:Scala中None跟null的区别是什么?它们之间的关系又是什么?

 

 

 

 

----------分界线:以下是实际面试问题讲解----------

 

如果有一个类A,里面有函数func。存在以下代码

  1. case class A() {
  2. def func: Unit = println("Func in A")
  3. }
  4. val a: A = A() // null
  5. val b = Some(a)

 

如何用b正确的使用func函数?

 

以下两种写法在a = null时都可以避免NullPointerException的出现:

 

第一种写法。因为b是Some类型,所以直接用Some来匹配即可,x其实就是匹配的a。若a = null时,匹配出来x也等于null

  1. b match {
  2. case Some(x) =>
  3. if (x == null) {
  4. println("null")
  5. } else {
  6. x.func
  7. }
  8. }

 

第二种写法。可以先让特殊情况null匹配了之后,再匹配其余的情况

  1. b match {
  2. case Some(null) =>
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/神奇cpp/article/detail/864587
推荐阅读
相关标签
  

闽ICP备14008679号