一、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类型;

未完待续~~

scala中的数据类型的更多相关文章

  1. Scala 中的函数式编程基础(三)

    主要来自 Scala 语言发明人 Martin Odersky 教授的 Coursera 课程 <Functional Programming Principles in Scala>. ...

  2. Scala进阶之路-Scala中的泛型介绍

    Scala进阶之路-Scala中的泛型介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 通俗的讲,比如需要定义一个函数,函数的参数可以接受任意类型.我们不可能一一列举所有的参数类 ...

  3. scala中常用特殊符号

    参考资料: scala中常用但其他语言不常见的符号含义 Scala学习六:Scala中的特殊字符 =>(匿名函数) 参考文档:scala => 用法 匿名函数 => 匿名函数,在Sp ...

  4. 第2节 Scala中面向对象编程:1、类的定义;2、类的构造器;3、object和伴生对象;4、apply和main方法

    6.    类.对象.继承.特质 Scala的类与Java.C++的类比起来更简洁,学完之后你会更爱Scala!!! 6.1.   类 6.1.1.    类的定义 package cn.itcast ...

  5. Scala 基础(五):Scala变量 (二) 数据类型

    1 scala数据类型介绍 Scala 与 Java有着相同的数据类型,在Scala中数据类型都是对象,也就是说scala没有java中的原生类型 Scala数据类型分为两大类 AnyVal(值类型) ...

  6. Scala中的函数高级使用

    1.偏函数 1.基本介绍 在对符合某个条件,而不是所有情况进行逻辑操作时,使用偏函数是一个不错的选择 将包在大括号内的一组case语句封装为函数,我们称之为偏函数,它只对会作用于指定类型的参数或指定范 ...

  7. Scala中的流程控制

    一.分支控制if-else //Scala中if-else语句中,代码块内最后一句代码就是返回值 def main(args: Array[String]): Unit = { var age:Int ...

  8. Scala变量和数据类型

    一.注释及代码规范 Scala的注释和Java中完全相同:单行注释:// .多行注释:/* */ 以及文档注释:/**   */: 使用tab操作,实现缩进,默认整体向右边移动,用shift+tab整 ...

  9. JavaScript 中的数据类型

    Javascript中的数据类型有以下几种情况: 基本类型:string,number,boolean 特殊类型:undefined,null 引用类型:Object,Function,Date,Ar ...

  10. Scala中apply的用法

    Scala中的 apply 方法有着不同的含义, 对于函数来说该方法意味着调用function本身, 以下说明摘自Programming in Scala, 3rd Edition Every fun ...

随机推荐

  1. 使用IntelliJ创建第一个简单的Springboot项目

    使用Intellij创建Springboot项目 使用IntelliJ创建Springboot项目是非常方便的,创建过程中,我们可以自由的选择要启用的springboot生态里的各种框架.插件.本文只 ...

  2. ucocIII野火

    5.1裸机系统 5.1.1 轮询系统 轮询系统即是在裸机编程的时候,先初始化好相关的硬件,然后让主程序在一个死循环里面不断循环,顺序地做各种事情.轮询系统是一种非常简单的软件结构,通常只适用于那些只需 ...

  3. Dockerfile CMD命令提示no such file

    过程: 自制一个kafka镜像,启动时CMD命令报ERROR # 安装 kafka ADD kafka_2.12-2.4.1.tgz /home/pmish/software ENV KAFKA_HO ...

  4. R语言Apriori关联规则、kmeans聚类、决策树挖掘研究京东商城网络购物用户行为数据可视化|附代码数据

    全文链接:http://tecdat.cn/?p=30360 最近我们被客户要求撰写关于网络购物用户行为的研究报告,包括一些图形和统计输出. 随着网络的迅速发展,依托于网络的购物作为一种新型的消费方式 ...

  5. Android Studio的xml文件无法代码提示

    之前试了省电模式.清理缓存.重新勾选sdk都没有任何用 于是我开始乱搞,总结了以下方法: 找到Gradle Script中的build.gradle(Module:XXXX) 修改compileSdk ...

  6. 【Windows】IP 地址变为 169.254.x.x 的解决方法

    最近每次开机 IP 地址都会自动跳至 169.254.x.x 段,连接不上网络,设置了固定 IP 也会跳段.因此找到以下解决方法: 『IP地址变成169.254.x.x 和固定ip两个IP地址的解决办 ...

  7. 【stm32】的PWM外设|学习笔记

    PWM简单理解就是生成PWM方波,主要可控的参数有周期,占空比,极性. stm32内置PWM生成器,我想应该是用TIM加比较器来实现的吧,那么如何实现stm32输出PWM波呢? 一.得知道那些IO可以 ...

  8. python 中的 re.compile 函数

    python 中的 re.compile 函数   正则表达式功能十分强大. "有些人面临一个问题时会想:'我知道,可以用正则表达式来解决这个问题.'于是现在他们就有两个问题了"- ...

  9. 【快速学】C/C++编译器

    编译器 谁维护 平台 版权 Visual C++ Microsoft https://visualstudio.microsoft.com/ Microsoft Windows 有免费版 GCC C ...

  10. 使用VS Code打造完美的嵌入式IDE

    参考这个博主https://blog.csdn.net/qq_34245464/article/details/100769643的博文, 使用VS Code再重新打造一次完美的嵌入式IDE平台. 前 ...