码迷,mamicode.com
首页 > 其他好文 > 详细

Scala核心编程_第02章_变量

时间:2020-05-16 00:49:37      阅读:63      评论:0      收藏:0      [点我收藏+]

标签:注意   dem   数据类型   一个   初始   scala数据类型   默认值   相同   one   

变量声明基本语法

var | val 变量名 [: 变量类型] = 变量值

注意事项:

  1. 声明变量时,类型可以省略(编译器自动推导,即类型推导)
  2. 类型确定后,就不能修改,说明Scala 是强数据类型语言.
  3. 在声明/定义一个变量时,可以使用var 或者 val 来修饰, var 修饰的变量可改变,val 修饰的变量不可改.val修饰的变量在编译后,等同于加上final,通过反编译看下底层代码。var 修饰的对象引用可以改变,val 修饰的则不可改变,但对象的状态(值)却是可以改变的(比如: 自定义对象、数组、集合等等) 
  4. 变量声明时,需要初始值。而java可以不给出初始值,系统自动赋予默认值

scala设计者为什么设计 var和val?

  1. 当需求是获取/创建一个对象后,只是读取或者修该对象的属性值,但是我们很少去改变这个对象本身这时,我们就可以使用val
  2. 因为val 没有线程安全问题,因此效率高。
object Vdemo {
  def main(args: Array[String]): Unit = {
    val dog= new Dog()
    dog.age=5
    dog.gender="male" //报错
  }
  
  class Dog{
    val gender="female"
    var age=5
  }

}

scala数据类型介绍

  1. Scala 与 Java有着相同的数据类型,在Scala中数据类型都是对象,也就是说scala没有java中的原生类型,scala这个地方和python很像,"一切皆对象"。
  2. Scala数据类型分为两大类 AnyVal(值类型) 和 AnyRef(引用类型), 注意:不管是AnyVal还是AnyRef 都是对象。

技术图片

 

 

    1. 在scala中有一个根类型Any,他是所有类的父类。
    2. scala中一切皆为对象,分为两大类AnyVal值类型),AnyRcf(引用类型),他们都是Any子类
    3. Null 类型是scala的特别类型,它只有一个值null,他是bottomcalss,是所有AnyRef类型的子类
    4. Nothing类型也是bottomclass,他是所有类的子类,在开发中通常可以将Nothing类型的值返回给任意变量或者函数,这里抛出异常使用很多。

 

Scala核心编程_第02章_变量

标签:注意   dem   数据类型   一个   初始   scala数据类型   默认值   相同   one   

原文地址:https://www.cnblogs.com/wqbin/p/12898017.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!