码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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

  • 相关阅读:
    PyTorch 结构重参数化 RepVGGBlock
    R语言dplyr统计指定列里面种类个数和比例
    架构师:构建高可用服务治理Consul集群与Kong网关管理
    小红书《乡村振兴战略下传统村落文化旅游设计》中南大博士许少辉八一新著
    Tmux 使用教程
    .NET性能系列文章一:.NET7的性能改进
    【Android从零单排系列九】《Android视图控件——ImageView》
    解决:vscode和jupyter远程连接无法创建、删除文件的问题(permission denied)
    测试到底是个啥
    4款私藏已久的宝藏软件,每一款都是心头之爱
  • 原文地址:https://blog.csdn.net/Flychuer/article/details/126452321
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号