• Scala基础篇--变量与常量


    目录

    一、变量和常量的定义

    1.1、数据中的定义

    1.2、Java中的定义

    1.3、Scala中的定义

    二、声明规则

    三、示例


    一、变量和常量的定义

    1.1、数据中的定义

            大家最先接触变量和常量,应该在学习函数的时候,因此我们先来看一下数据中对二者的定义。

            变量:在某一变化过程中,数值发生变化的量称为变量。变量分为自变量和因变量,亦称函数。

            常量:在某一变化过程中,数值始终不变的量称为常量。

    1.2、Java中的定义

            变量类型 变量名称 = 初始值        int a = 10

            final 常量类型 常量名称 = 初始值    final int b = 20

            在Java中常量是特殊的变量,一旦赋值就不可变。 

    1.3、Scala中的定义

            var 变量名 [: 类型] = 初始值     var i:Int = 10 

            val 常量名 [: 类型] = 初始值     val j:Int = 20

            其中,类型可以省略,var是变量variable的简写,val是值value的简写,从定义时就将二者区分开来。

            在Scala中能用常量的地方不用变量,更符合函数编程的思想。

    二、声明规则

        ( 1 )声明变量时,类型可以省略,编译器自动推导,即类型推导
        ( 2 )类型确定后,就不能修改,说明 Scala 是强数据类型语言。
        ( 3 )变量声明时,必须要有初始值
        ( 4 )在声明 / 定义一个变量时,可以使用 var 或者 val 来修饰, var 修饰的变量可改变,val 修饰的变量不可改。

    三、示例

    def main(args: Array[String]): Unit = {
    // 1 )声明变量时,类型可以省略,编译器自动推导,即类型推导
    var age = 18
    age = 30
    // 2 )类型确定后,就不能修改,说明 Scala 是强数据类型语言。
    // age = "tom" // 错误
    // 3 )变量声明时,必须要有初始值
    // var name // 错误
    // 4 )在声明 / 定义一个变量时,可以使用 var 或者 val 来修饰, var 修饰
    的变量可改变, val 修饰的变量不可改。
    var num1 = 10 // 可变
    val num2 = 20 // 不可变
    num1 = 30 // 正确
    //num2 = 100 //错误,因为 num2 是 val 修饰的
    }

             var 修饰的对象引用可以改变,val 修饰的对象则不可改变,但对象的状态(值)

    却是可以改变的。
    object TestVar {
    def main(args: Array[String]): Unit = {
    // p1 是 var 修饰的,p1 的属性可以变,而且 p1 本身也可以变
    var p1 = new Person()
    p1.name = "dalang"
    p1 = null
    // p2 是 val 修饰的,那么 p2 本身就不可变(即 p2 的内存地址不能变),但是,p2 的属性是可以变,因为属性并没有用 val 修饰。
    val p2 = new Person()
    p2.name="jinlian"
    // p2 = null // 错误的,因为 p2 是 val 修饰的
    }
    }
    class Person{
    var name : String = "jinlian"
    }

    参考资料:014_尚硅谷_Scala_变量和数据类型(二)_变量和常量_哔哩哔哩_bilibili

  • 相关阅读:
    七月集训(第24天) —— 线段树
    Mybatis框架_涉及技术与拓展
    window mysql忘记密码解决方案
    市场上ios签名公司做什么的?
    CSS 滚动驱动动画与 @keyframes 新语法
    Hadoop高可用环境搭建-HDFSNameNode高可用搭建、Yarn高可用搭建
    微信公众号记录
    java基础·小白入门(一)
    分类问题经典算法 | 多分类问题 | Softmax回归:梯度下降
    Python接口自动化测试 —— Selenium+pytest+数据驱动
  • 原文地址:https://blog.csdn.net/Flychuer/article/details/126452321