【scala】scala变量定义和数据类型

一、变量定义

对比java说明
scala变量的定义分两个,一个是用val来定义,相当于java中是用final来定义变量,一旦定义,其中的值便不可修改;另外一个是用var来定义,相当于java中的非final变量,可修改。一般使用val定义,因为变量定义之后一般很少会去修改。如果你用val定义了一个对象,对象.属性还是可以修改的(前提是对象.属性是用var来定义的)
java变量定义方式:

String name = "zhangsan";
int age = 18;

对比java,scala的定义并不需要显性的指定变量类型,因为scala有类型推断的能力,可以推断出那些不显示指定的类型
scala类型定义为:val/var 变量名[:变量类型]=值(其中[]中的部分是可以省略的)

//val/var 变量名[:变量类型]=值
val name = "zhangsan"
var age = 18

scala编码中可以不用分号来结尾,编译器自动识别,但是如果多行代码合并成一行,还是需要用分号隔开的。

二、数据类型

scala 是完全面向对象的语言,所以没有原生的基本数据类型。 scala中的数字也是对象,可以调用方法 java中基本的数据类型有:byte,short,int,long,float,double,boolean,char scala中数据类型对应的为Byte,Short,Int,Long,Float,Double,Boolean,Char

scala中数据类型分为两大类AnyVal(值类型)和AnyRef(引用类型),这两种类型都是对象。

scala数据类型关系一览:

在这里插入图片描述
特别注意一下,在scala中Null也是一个对象,是引用类型的子。也就是说我们可以定义一个对象,其值为null

object Scala01_test0 {
  /**
   * @description:TODO
   * @author :momo
   * @date :2020/2/29 10:28 下午
   */
  def main(args: Array[String]): Unit = {
    var stu : Student = null
   print(stu)
  }
}
class Student {
  var name  = "zhangsan"
  var age  = 0
}

scala数据类型列表

数据类型描述
Byte8位有符号的补码整数,数值区间为 -128到127
Short16位有符号的补码整数,数值区间为:-32768 到 32767
Int32位有符号的补码整数,数值区间为:-2147483648 到 2147483647
Long64位有符号的补码整数,数值区间为:-9223372036854775808 到 9223372036854775807
Float32位IEEE 754标准的单精度浮点数
Double64位IEEE 754标准的双精度浮点数
Booleantrue,false
Char16位无符号Unicode字符,区间值为U+0000到U+FFFF(0~65535)
String字符序列,在java中为引用类型,在scala中为数值类型
Unit表示无值,相当于java中的void类型。只有一个实例,写为()
Null有唯一实例null
NothingNothing是任何类型的子类
AnyAny是其他类型的超累
AnyRefAnyRef是所有引用类型(reference class)的基类
AnyValAnyVal是所有值类型的基类

强制类型转换
scala中的强制类型转换不同于java中的强制类型转换,可以直接采用toXXX的方式来,如下:

    val str : String = "10"
    str.toInt

scala中类型转换很特殊,后面将会有单独的一章来讲隐式转换

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值