一个程序就是一个世界,在scala中一切都是对象
Scala变量使用说明
变量声明基本语法**
var | val 变量名 [: 变量类型] = 变量值
注意事项
1.声明变量时,类型可以省略(编译器自动推导,即类型推导)
2.类型确定后,就不能修改,说明Scala 是强数据类型语言.
3.在声明/定义一个变量时,可以使用var 或者 val 来修饰, var 修饰的变量可改变,val 修饰的变量不可改.
4.val修饰的变量在编译后,等同于加上final, 通过反编译看下底层代码
5.var 修饰的对象引用可以改变,val 修饰的则不可改变,但对象的状态(值)却是可以改变的。(比如: 自定义对象
、数组、集合等等) [分析val好处]
6.变量声明时,需要初始值。
数据类型
scala数据类型介绍
① Scala 与 Java有着相同的数据类型,在Scala中数据类型都是对象,也就是说scala没有java中的原生类型
② Scala数据类型分为两大类 AnyVal(值类型) 和 AnyRef(引用类型), 注意:不管是AnyVal还是AnyRef 都是对象。
③ 相对于java的类型系统,scala要复杂些!也正是这复杂多变的类型系统才让面向对象编程和函数式编程完美的融合在了一起
package com.chapter02
object TypeDemo01 {
def main(args: Array[String]): Unit = {
var x1 : Int = 10
//在scala中数据类型均为对象
//一切均为对象
println(x1.toString + x1.toDouble + x1.toChar + 100.toString)
//在scala中如果没有形参的话可以没有()
sum
sum()
}
def sum() : Unit = {
println("say hi")
}
}
总结:
1.在scala中有一个根类型为Any,它是所有类的父类,就和java的Object一样
2.在scala中,一切皆为对象,主要分为两大类:AnyVar,和AnyRef。他们丢失Any的子类。
3.Null是scala的特殊类型:它只有一个值为null。它是bottom class,是所有AnyRef的子类
4.Nothing也是bottom class的类型,它是所有类型的子类,在开发中,通常可以将Nothing类型的值返回给任意变量和函数,在抛出异常的时候使用的多。
5.在scala中,仍然遵守低精度向高精度的隐式转换。
var x2 = 1.1
var x3 = 1.2f
x3 = x2.toFloat
println(x3)