【scala专栏_持续更新】10_scala数据类型

【大纲】
在这里插入图片描述

【正文】

1.数据类型

1.1.【结论】作用

scala是强类型语言,用数据类型来约束变量的取值范围

1.2.【结论】分类

在这里插入图片描述

家族首尾的数据类型使用示例说明
Anyscala中所有数据类型的最高父,它有两个子类AnyRef与AnyVal
Nothingscala中所有数据类型的子。不能直接创建该类型的实例,但当某个方法抛异常时,返回的就是Nothing类型
值类型的数据类型使用示例说明
AnyValscala所有值类型的父
Unit(只有一个值())val a = ()返回值类型是空,等于把java的void包装成了Unit类型
Byteval a: Byte = 18位带符号整数 [-129 ~ 127]
Shortval a: Short = 116位带符号整数 [-32768 ~ 32767]
Int(默认、默认值0)val a = 1 ;val b = 0x29 # 4132位带符号整数 [-2147483648 ~ 2147483647]
Longval a = 1L # 164位带符号整数 [-9223372036854775808 ~ 9223372036854775807]
Floatval a = 1F # 1.032位单精度浮点数
Double(默认、默认值0.0)val a = 1.064位双精度浮点数
Boolean(默认值false)val a = truetrue/false
Charval a = ‘s’16位无符号Unicode字符
引用类型的数据类型使用示例说明
AnyRef (地位同java.lang.Object)scala所有引用类型的父
Null(只有一个值null)val val_null = nullscala所有引用类型的子类, 等于java的null。能赋值给任何引用类型变量
java.lang.String(默认值null)val s = “hello”Char类型的序列 = 字符串
其他java类
ScalaObject
Nil (只有一个值List())val list = Nilscala的空List
其他scala类
# 注意:
    0.scala中所有的类型都使用大写字母开头
    1.scala中整形使用Int而不是java的Integer
    2.注意null不能赋值给值类型变量,因为null不是值类型的子

2.类型转换

2.1.【结论】值类型数据的类型转换

自动类型转换:范围小的数据类型值会自动转换为范围大的数据类型值
    Byte/Short/Char < Int < Long < Float < Double
    
强制类型转换:范围大的数据类型值通过强制转换函数,转换为范围小的数据类型值,可能损失精度
    val/var 变量名: 数据类型 = 具体的值.toXxx # Xxx表示目标数据类型

示例

# 值类型的自动类型转换
scala> var a:Int = 1
a: Int = 1

scala> val b:Double = 1 + 1.2 # 效果:Int类型的1会自动转换为Double,来和Double计算
b: Double = 2.2
# 值类型的强制类型转换
scala> val a:Double = 1.23
a: Double = 1.23

scala> val b:Int = a.toInt # 效果:调用强制类型转换函数,进行强制类型转换了
b: Int = 1

2.2.【结论】值类型数据和String相互转换

值类型数据转String
    方式一
        值类型数据 + ""
    方式二
        值类型数据.toString

String转值类型数据
    字符串值.toInt
    字符串值.toBoolean
    字符串值.toCharArray
    
    # 注意:String转Char 是字符串值.toCharArray,而不是字符串值.toChar

示例

# Int转String

scala> val a = 10
a: Int = 10

scala> val b = a.toString
b: String = 10
# Int转String
scala> val a = 10
a: Int = 10

scala> val b = a + ""
b: String = 10

2.3.引用类型的类型转换(后边讲)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Cheese海盐芝士

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

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

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

打赏作者

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

抵扣说明:

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

余额充值