一零一八、记一次var 和 val的区别(偶然发现)

20 阅读1分钟

在一次写scala的过程中,偶然间将 var 写成了 val ,发现报错

var avg = 0.00;
      if (line(4).contains("万/月")) {
        val min: Double = line(4).split("-")(0).toDouble
        val max: Double = line(4).split("-")(1).substring(0, line(4).split("-")(1).length - 3).toDouble
        avg = (min + max) / 2;
      }
      (line(1), line(2), line(3), avg, line(5), line(6), line(7), line(8), line(9), line(10))
    }).toDF("jobType", "jobName", "city", "salary", "experience", "education", "companyType", "companyName", "jobwelf", "time")

截图如下:

 首先我认为程序没有错误,变量是全局的,数据类型也没有错误,返回值也可以接收到,但变量这里一直是有问题,左思右想,偶然间突然发现 avg的声明 写的是val ,我记着声明是var啊,改成var后,程序健康

 原来var和val是有区别的,才学疏浅,没注意过,又一个知识点学到了,如下: