Scala 数据类型与转换

1、 java 数据类型

1.1、八种基本数据类型

基本数据类型占字节数
byte1
short2
char2
int4
long8
floot4
double8
boolean有的用一个字节,有的用一位

1.2、引用数据类型

除了基本类型,就是引用类型
基本类型 => 包装类

2、 scala 数据类型(Any :AnyVal 、AnyRef)

所有的数据都是对象,函数也是对象

2.1、AnyVal 类(效率较高)

数据类型作用,描述
Double类 java (是类,而不是 java 中的关键字)
类 java 中的基本数据类型
Float类 java
Unit类型 类 java 中的 void 用于方法或函数不需要返回值的时候,表示无值。只有一个实例值,写成 ( )
StringOps是 String 的加强版,当使用 java 的 String 时候,一些没有方法,会自动从这个类型找(隐式转换),与 String 没有父子关系
Nothing在 scala 中是所有类型的子类型,最低端当一个函数,我们确定没有正常的返回值时,可以用Nothing 来指定返回类型,好处:我们可以把返回的值(异常)赋给其它的函数或者变量

2.2、AnyRef 类

数据类型作用、描述
All java classes所有的 java 类到 scala 中都属于AnyRef
Scala collectionsscala 中所有的集合
Other Scala classes去掉AnyVal中的类及 java 中的类和集合
Null是所有的 AnyRef 的子类型 ,只有一个值:null(为 java 中的 null )
Nothing在 scala 中是所有类型的子类型,最低端,当一个函数,我们确定没有正常的返回值时,可以用Nothing 来指定返回类型,好处:我们可以把返回的值(异常)赋给其它的函数或者变量


null :在 java 中可以给任何的引用类型赋值
Null :在 scala 是所有的 AnyRef 的子类型,只有一个值:null ( 其实就是 java 中的 null ),可以赋值给任意的引用类型(AnyRef)但是不能赋值给值类型(AnyVal)

3、数据类型之间的转换

3.1、值类型之间的转换

3.1.1、自动转换( 提升 )

Byte - > Short - > Int - > Long - > Float - > Double ;
Char - > Int - > Long - >Float - >Double
( 类 Java )

3.1.2、强制转换

(1)基本类型强转

java:(int)2L
scala:调用方法 (.toInt、.toDouble…)

val a : Long = 2L
val b : Int = a.toInt

(2)字符串中纯数字转换

注:字符串中如果是纯数字,也可以轻易转换成相应的类型

java

val  s : String = "123"
val  i  :Int = Integer.parseInt(s)
println(i)

scala:

val  s :String = "123"
println(s.toInt)
println(s.toDouble)

(3)转字符串

val a :Int = 423
val s1 : String = 423 + " "
val s2 : String = 423.toString

3.2、引用类型的转换

遵守面向对象的规则,多态


版权声明:本文为Smiling_lzy原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。