其他分享
首页 > 其他分享> > scala中的数据类型

scala中的数据类型

作者:互联网

一、Scala的数据类型 

    

 (1)、 scala中一切数据都是对象,都是Any的子类;

 (2)、scala中数据类型分为两大类:数值类型(AnyVal,即any value,任意值)、引用类型(AnyRef,即any reference,任意引用);

 (3)、scala数据类型仍然遵守低精度的值类型向高精度的值类型,自动转换(隐式转换);char类型自动转换为Int类型;

 (4)、scala中StringOps是对JAVA中String的增强;

 (5)、Unit:对应JAVA中的void,空值,表示方法没有返回值。Unit是一个数据类型,只有一个对象就是()。Void不是一个数据类型,只是一个关键字;

 (6)、Null是一个类型,空引用,只有一个对象就是null,它是所有引用类型(AnyRef、Scala class、Scala Collections、java Class)的子类;

 (7)、Nothing,是所有数据类型的子集,只有一个对象就是null,既不是空引用也不是空值;主要用在一个函数没有明确返回值时使用,因为这样我们可以把抛出的返回值,返回给任何的变量或者函数。

        例如:抛异常时(兼容性)

 1、整数类型

   

 (1)、 整数默认类型为Int;小数默认类型为Double;

 (2)、长整型数值定义:val a1 = 12334444L;

2、字符类型(Char)

      char表示单个字符;单个字符(包括符号、数字、字母)的底层保存是用的ASCII码;

      控制字符  :'\t'表示制表符;'\n'表示换行符;

      转义字符  :'\\'表示\;'\"'表示";

3、布尔类型

      也称为Boolean类型;Boolean类型数据只允许取值true和false;只占1个字节;

4、空类型

      

    简单总结:空值Unit、空引用Null、异常返回Nothing 

二、Scala数据类型转换

1、基本说明

(1)、 自动提升原则:有多种类型的数据混合计算时,系统首先自动将所有数据转换成精度大的那种数据类型,然后再进行计算;

(2)、强制类型转换:精度大的数值类型强制转换为精度小的数值类型;

     (toInt()、toShort()、toChar()、toByte()、toLong()、toFloat()、toDouble()、toString());

       例如: val num2: Long = 309

                 val num1: Byte = 11

                 val result = (num1 + num2).toInt  //result结果为Long类型,强制转换为Int类型

       注意:强制类型转换可能会导致数据精度的丢失或数据溢出。

(3)、(byte、short)和char之间不会相互自动转换;

(4)、byte、short、char他们三者可以计算,在计算时首先转换成int类型;

  

 

 

 未完待续~~

标签:val,Scala,scala,数据类型,char,类型
来源: https://www.cnblogs.com/tt-day/p/16499623.html