Cris 的 Scala 笔记(三):变量

3.变量

3.1 基本概念

变量相当于内存中一个数据存储空间的表示,你可以把变量看做是一个房间的门牌号,通过门牌号我们可以找到房间,而通过变量名可以访问到变量(值)

变量的初始化(自动类型推断)scala要求变量声明时初始化

var age = 12
var name = "cris"
var flg = true
var key = 'a'

// 如果不使用 Scala 的自动类型推断
val b: Double = 11.11
var a: String = "simida"

变量使用详解

var | val 变量名 [: 变量类型] = 变量值,说明:在scala中声明一个变量时,可以不指定类型,编译器根据值确定

声明变量时,类型可以省略(编译器自动推导,即类型推导)

类型确定后,就不能修改,说明Scala 是强数据类型语言

在声明/定义一个变量时,可以使用var 或者 val 来修饰, var 修饰的变量可改变(值和引用),val 修饰的变量不可改(引用)

val修饰的变量在编译后,等同于加上final通过反编译看底层代码就知道了

var 修饰的对象引用可以改变,val 修饰的则不可改变,但对象的状态(值)却是可以改变的。(比如: 自定义对象、数组、集合等等)

变量声明时,需要初始值

object Main {
   
  def main(args: Array[String]): Unit = {
   
    var stu = new Stu
    val stu2 = new Stu

    // var 修改的变量指向的对象的值和引用均可改变
    stu.name = "james"
    stu = null

    // val 修饰的变量指向的对象的值可以改变,但是引用无法改变
    stu2.name = "simida"
    //    stu2 = null   // 报错
  }

}

class Stu {
   
  // 属性默认就是 public 权限
  var name = "cris"
}

能使用 val 就别使用 var !

因为改变变量引用指向的的工作量大大高于改变对象值的工作量,使用 val 关键字,底层编译器也会对其进行优化,效率更高!

3.2 数据类型

Scala 与 Java有着相同的数据类型,在Scal

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值