Scala的变量和数据类型
var和val的区别
常量:在程序执行的过程中,其值不会被改变的变量
- 基本语法
var 变量名 [: 变量类型] = 初始值 var i:Int = 10
val 常量名 [: 常量类型] = 初始值 val j:Int = 20
注意:能用常量的地方不用变量
数据类型
- Scala中一切数据都是对象,都是Any的子类。
- Scala中数据类型分为两大类:数值类型(Any Val)、引用类型(Any Ref),不管是数值类型还是引用类型都是对象。
- Scala数据类型仍然支持低精度转高精度的自动转换。
- Scala中的StringOps是对Java中的String增强。
- Unit:对应Java中的void,用于方法返回值的位置,表示没有返回值。Unit是一个数据类型,只有一个对象,就是()。void不是数据类型,只是一个关键字。
- Null是一个类型,只有一个对象就是null,他是所以引用类型(Any Ref)的子类。
- Nothing,是所有数据类型的子类,主要用于一个函数没有明确返回值时使用,因为我们可以把抛出的返回值返回给任何变量或者函数。
整数类型(Byte、Short、Int、Long)
Scala 的整型,默认为 Int 型,声明 Long 型,须后加‘l’或‘L’。
Scala 程序中变量常声明为 Int 型,除非不足以表示大数,才使用 Long。
浮点类型
Scala 的浮点型常量默认为 Double 型,声明 Float 型常量,须后加‘f’或‘F’。
字符类型(Char)
字符类型可以表示单个字符,字符类型是 Char。
布尔类型(Boolean)
boolean类型占一个字节
Unit类型、Null类型和Nothing类型
- 基本说明
类型转换
自动类型转换
数据类型按精度(容量)大小排序为:
- 自动提升原则:有多种类型的数据混合运算时,系统首先自动将所有数据转换为精度大的那种数据类型,然后进行计算
- 把精度大的数值类型赋值给精度小的数值类型会报错,反之进行自动类型转换。
- (byte,short)和char之间不会相互自动转换。但是可以计算,在计算时,他们会先转换为int类型然后进行计算。
强制类型转换
自动类型转换的逆过程,将精度大的数值类型转换为精度小的数值类型。使用时要加上
强制转函数,但可能造成精度降低或溢出,格外要注意。
Java : int num = (int)2.5
Scala : var num : Int = 2.7.toInt
数值类型和String类型间转换
在程序开发中,我们经常需要将基本数值类型转成 String 类型。或者将 String 类型转成
基本数值类型。
- 基本类型转 String 类型(语法:将基本类型的值+“” 即可)
- String 类型转基本数值类型(语法:s1.toInt、s1.toFloat、s1.toDouble、s1.toByte、s1.toShort、s1.toLong)
CSDN-Ada助手: Java 技能树或许可以帮到你:https://edu.csdn.net/skill/java?utm_source=AI_act_java
CSDN-Ada助手: 不知道 算法 技能树是否可以帮到你:https://edu.csdn.net/skill/algorithm?utm_source=AI_act_algorithm
路遥万里: 太全面了吧
cluse_ld: 你不是我第一个铁粉天理难容
路遥万里: 博主666