Scala基础-1-变量

变量定义:

var/val 变量名: 变量类型 = 变量值,Scala要求声明变量时必须初始化

val p: String="Scala"
val i: Int=10

声明变量时,变量类型可以省略

类型确定后,就不能再更改

用 var声明的变量可以修改,val修饰的不可改,即相当于val修饰的变量添加了final,

使用val修饰没有线程安全问题

数据类型:

  • Scala中有和java相同的数据类型,在scala中数据类型都是对象,也就是说scala中没有java中的原生类型
  • Scala数据类型分为两大类:AnyVal(值类型)和AnyRef(引用类型)

image-20210111155033273

Any为所有类的父类

实线表示继承,虚线表示可以隐式转换

Null是Scala的特别类型,只有一个值null,是所有引用类型的子类

Nothing是所有类的子类,可以将Nothing类型的值返回给任意函数或变量,抛出异常时使用较多
类型转换同Java
小数默认为Double类型;

def sayHello: Nothing = {
 throw new Exception()
}

数据类型列表:

数据类型描述
Byte8位有符号补码整数, 数值区间为-128到127
Short16位有符号补码整数, 数值区间为-32768到32767
Int32位有符号补码整数
Long64位有符号补码整数
Float32位IEEE 754标准的单精度浮点数
Double64位IEEE 754标准的双精度浮点数
String字符序列
Char16位无符号Unicode字符
Booleantrue或false
Unit表示无值,等同于void
Nullnull
Nothing所有类型的子类型
Any所有类的父类
AnyRef所有引用类型的父类
AnyVal所有数据类型的父类

Char使用注意:

  • 可以直接使用整型数值进行赋值,但是不能使用计算结果赋值
var c1: Char = 98//可以
var c2: Char = 97+1//报错
//原因:
//当把一个计算的结果赋值一个变量,编译器会进行类型转换及判断(会判断当前类型和计算类型是否一致:Int和Char是两者中类型)
//当把一个字面量赋值给变量,编译器只会进行范围判断

Null:

  • Null只有一个实例对象null,类似于java中的null引用,null可以赋值给任意的引用类型,但是不能给值类型

String:

  • 首字母地址从1开始存放

Scala的强制转换:

  • 变量.toFloat: 转换为float类型,其他类似

  • String转换: 只能是同类型转换比如 “12”.toInt是正确的, “12.5”.toInt会报错, 所以在将String转换为其他类型时,首先要确保是可以进行转换的

变量名的规范

Scala中,运算符也可以作为变量名存在, 但是要遵循,如果运算符作为变量名的话必须是两个或两个以上的运算符(不要求必须是同一运算符)同时出现

val ++ = 1//底层实际是 ++ 转换为 $plus$plus
val +- = 2

可以使用关键字作为变量名,只要在关键字外加上反引号即可, 类似于mysql中关键字的使用

val `true`=true

在Scala中Int等类型名称不是关键字,而是预定义标识符,可以用来当做变量名,但是不推荐这么使用

val Int =1
val Float=1.2
val Double =6

其他同java

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值