Scala基础-类型

数据类型

Scala是完全面向对象的语言,所以不存在基本数据类型的概念,有的只是任意值对象类型(AnyVal)和任意引用对象类型(AnyRef)
在这里插入图片描述
详细图:
在这里插入图片描述
类型描述:

数据类型 描述
Byte 8位有符号补码整数。数值区间为 -128 到 127
Short 16位有符号补码整数。数值区间为 -32768 到 32767
Int 32位有符号补码整数。数值区间为 -2147483648 到 2147483647
Long 64位有符号补码整数。数值区间为 -9223372036854775808 到 9223372036854775807
Float 32 位, IEEE 754 标准的单精度浮点数 3.14f 或 3.14F
Double 64 位 IEEE 754 标准的双精度浮点数
Char 16位无符号Unicode字符, 区间值为 U+0000 到 U+FFFF ‘A’
Boolean true或false
Unit 表示无值,和Java语言中void等同。用作不返回任何结果的方法的结果类型。Unit只有一个实例值,写成()。
String 字符序列
Null null 或空引用
Nothing Nothing类型在Scala的类层级的最底端;它是任何其他类型的子类型。
Any Any是所有其他类的超类
AnyRef AnyRef类是Scala里所有引用类(reference class)的基类
AnyVal AnyVal类是Scala里所有值类基类

package cn.itbaizhan.chapter02


object DateType {
 def main(args: Array[String]): Unit = {
  var bt:Byte = 10
  var st:Short = 32675
  var it:Int = 100000
  var lg:Long = 10000000L
  var ft:Float = 3.14f
  var ft1 = 3.14f //自动类型推测出为Float
  var db:Double = 8.8
  var ca:Char = 'A'
  var name:String = "gtjin"
  var flag:Boolean = true
  //Unit类型的对象 只有一个值 就是 ()
  var result:Unit = method()
  println(result)
  }
 def method(): Unit ={
  println("method")
  }
}

在这里插入图片描述

类型转换

沿着箭头方向可以进行自动类型转换,反箭头方向需要进行强制类型转换。

package cn.itbaizhan.chapter02


/**数据类型转换
 * 1.自动类型转换
 *  沿着箭头方向进行类型转换,可以自动完成
 *  Byte->Short->Int->Long->Float->Double
 *  Char->Int->Long->Float->Double
 *  沿着箭头反方向进行类型转换,需要强制类型转换
 * 2.强制类型转换
 * 3.字符串和值类型的类型转换
 */
object DateTypeTransformer {
 def main(args: Array[String]): Unit = {
  //一.自动类型
  var bt:Byte = 10
  var st:Short = bt
  println("st="+st)
  var char:Char = 'A'
  println("char="+char)//char=A
  var it:Int = char
  println("it="+it)//it=65
  var it2:Int = st
  println("it2="+it2)//it2=10
  var lg:Long = it
  var lg2:Long = char
  var ft:Float = lg
  var ft2:Float = char
  var db:Double = ft
  var db2:Double = char
  //二.强制类型
  var bt2:Byte = st.toByte
  var char2:Char = it.toChar
  val it3: Int = ft.toInt
  val byte: Byte = ft2.toByte
  //三.字符串和值类型的类型转换
  var long:Long = 88L
  //任意的值类型都提供了toString方法,可以直接将值类型转换为字符串
  var longStr:String = long.toString
  //也可以通过 + ""  的方式将值类型转换为字符串类型。
  var longStr2:String = long+""
  println("longStr="+longStr)
  println("longStr2="+longStr2)
  println(longStr eq longStr2)//比较的是内存地址 false
  println(longStr == longStr2)//比较的值 true


  var strNum:String = "123"
  val int2: Int = strNum.toInt
  var str:String = "abc"
  //NumberFormatException: For input string: "abc"
  /*var int3:Int = str.toInt
  println(int3)*/
  }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

留不住的人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值