Scala数据类型
创始人
2025-05-30 08:33:25
0

目录

一 回顾:Java数据类型

二 Scala数据类型

1 基本概念

2 整数类型(Byte、Short、Int、Long)

3 浮点类型(Float,Double)

4 字符类型(Char)

5 布尔类型:Boolean

6 Unit 类型、Null 类型和Nothing 类型


一 回顾:Java数据类型

Java基本类型:char、byte、short、int、long、float、double、boolean

Java引用类型:(对象类型)

由于Java有基本类型,而且基本类型不是真正意义的对象,即使后面产生了基本类型的包装类,但是仍  然存在基本数据类型,所以Java语言并不是真正意思的面向对象。

Java基本类型的包装类:Character、Byte、Short、Integer、Long、Float、Double、Boolean

注意:Java中基本类型和引用类型没有共同的祖先。

二 Scala数据类型

1 基本概念

1)Scala中一切数据都是对象,都是Any的子类。

2)Scala中数据类型分为两大类:数值类型(AnyVal)、 引用类型(AnyRef),不管是值类型还是引用类型都是对象。


3)Scala数据类型仍然遵守,低精度的值类型向高精度值类型,自动转换(隐式转换)


4)Scala中的StringOps是对Java中的String增强

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


6)Null是一个类型,只有一个对象就是null。它是所有引用类型(AnyRef)的子类。


7)Nothing,是所有数据类型的子类,主要用在一个函数没有明确返回值时使 用,因为这样我们可以把抛出的返回值,返回给任何的变量或者函数。

 2 整数类型(ByteShortIntLong

Scala 的整数类型就是用于存放整数值的,比如 12,30,3456 等等。

1)整型分类

数据类型

描述

Byte [1]

8 位有符号补码整数。数值区间为 -128 到 127

Short [2]

16 位有符号补码整数。数值区间为 -32768 到 32767

Int [4]

32 位有符号补码整数。数值区间为 -2147483648 到 2147483647

Long [8]

64 位有符号补码整数。数值区间为 -9223372036854775808 到

9223372036854775807 = 2^(64-1)-1

2)案例实操
 

object TestDataType {def main(args: Array[String]): Unit = {// 正 确var n1:Byte = 127 var n2:Byte = -128// 错 误// var n3:Byte = 128// var n4:Byte = -129}
}

(2) Scala 的整型,默认为Int 型,声明 Long 型,须后加‘l’或‘L’

package com.mingyu.spark.core.testobject TestDataType {def main(args: Array[String]): Unit = {var n5 = 10println(n5)var n6 = 9223372036854775807Lprintln(n6)}}

(3) Scala 程序中变量常声明为Int 型,除非不足以表示大数,才使用Long

3 浮点类型(Float,Double)

Scala 的浮点类型可以表示一个小数,比如 123.4f,7.8,0.12 等等。

1) 浮点型分类

数据类型

描述

Float [4]

32 位, IEEE 754 标准的单精度浮点数

Double [8]

64 位 IEEE 754 标准的双精度浮点数

2) 使用方法

Scala 的浮点型常量默认为Double 型,声明 Float 型常量,须后加‘f’或‘F’。

object TestDataType {def main(args: Array[String]): Unit = {// 建议,在开发中需要高精度小数时,请选择Double var n7 = 2.2345678912fvar n8 = 2.2345678912println("n7=" + n7) println("n8=" + n8)}
}n7=2.2345679
n8=2.2345678912

4 字符类型(Char)

 1)    基本说明
        字符类型可以表示单个字符,字符类型是 Char。


2)使用方法
(1)         字符常量是用单引号 ' ' 括起来的单个字符。
(2)          \t :一个制表位,实现对齐的功能
(3)         \n :换行符
(4)        \\ :表示\
(5)        \" :表示"

package com.mingyu.spark.core.testobject TestCharType {def main(args: Array[String]): Unit = {//(1)字符常量是用单引号 ' ' 括起来的单个字符。var c1: Char = 'a'println("c1=" + c1)//注意:这里涉及自动类型提升,其实编译器可以自定判断是否超出范围,//不过 idea 提示报错var c2: Char = 'a' + 1println(c2)//(2)\t :一个制表位,实现对齐的功能println("姓名\t 年龄")//(3)\n :换行符println("\n")//(4)\\ :表示\println("c:\\videos\\1.mp4")//(5)\" :表示"println("他说:\"哈哈哈哈\"")}}c1=a
b
姓名	 年龄c:\videos\1.mp4
他说:"哈哈哈哈"

5 布尔类型:Boolean

1)基本说明
(1)布尔类型也叫Boolean 类型,Booolean 类型数据只允许取值 true 和 false
(2)boolean 类型占 1 个字节。
2)使用方法
 

package com.mingyu.spark.core.testobject TestBoolean {def main(args: Array[String]): Unit = {var b1: Boolean = trueval b2 = falseprintln(b1)println(b2)}}

6 Unit 类型、Null 类型和Nothing 类型

1)基本说明

数据类型

描述

Unit

表示无值,和其他语言中 void 等同。用作不返回任何结果的方法的结果

类型。Unit 只有一个实例值,写成()。

Null

null , Null 类型只有一个实例值 null

Nothing

Nothing 类型在 Scala 的类层级最低端;它是任何其他类型的子类型。当一个函数,我们确定没有正常的返回值,可以用 Nothing 来指定返回类型,这样有一个好处,就是我们可以把返回的值(异常)赋给其它的函数

或者变量(兼容性)

2)使用方法 

(1)Unit 类型用来标识过程,也就是没有明确返回值的函数。
由此可见,Unit 类似于 Java 里的void。Unit 只有一个实例——( ),这个实例也没有实质意义
 

package com.mingyu.spark.core.testobject TestUnit {def main(args: Array[String]): Unit = {def sayOk: Unit = {//	unit 表示没有返回值,即 void}println(sayOk)}}

输出

()

(2)Null 类只有一个实例对象,Null 类似于 Java 中的 null 引用。Null 可以赋值给任意引用类型AnyRef),但是不能赋值给值类型(AnyVal

package com.mingyu.spark.core.testobject TestNull {def main(args: Array[String]): Unit = {//	null可以赋值给任意的引用类型(AnyRef),//	却不能赋值给任意的值类型(AnyVal)var dog2 = new Dog()dog2 = null  // okvar age: Int = 18age = null  // type mismatch;val n = null // ok}}class Dog {}

(3) Nothing,可以作为没有正常返回值的方法的返回类型,非常直观的告诉你这个方法不会正常返回,而且由于 Nothing 是其他任意类型的子类,他还能跟要求返回值的方法兼容。

package com.mingyu.spark.core.testobject TestNothing {def main(args: Array[String]): Unit = {def test(): Nothing = {throw Exception}test}
}

相关内容

热门资讯

leetcode-链表-2.两... 2. 两数相加 - 力扣(Leetcode)   class Solu...
中职班主任工作计划 【推荐】中职班主任工作计划3篇  时光在流逝,从不停歇,我们的工作又进入新的阶段,为了在工作中有更好...
自然社团的工作计划 自然社团的工作计划  一、工作目的  使自然社在新的一学年有新的发展、新的提高,同时也为新社员提供良...
mysql8下载安装(zip版... mysql官网下载最新安装包 官网地址:https://dev.mysql.com/d...
德育工作计划 关于德育工作计划模板集合9篇  日子在弹指一挥间就毫无声息的流逝,又将迎来新的工作,新的挑战,不妨坐...
小学班级安全教育工作计划   安全工作关系到师生生命的安危,是学校开展正常教育、教学工作和社会稳定的头等大事,下面是CN人才网...
中班年级组工作计划 中班年级组工作计划(通用6篇)  光阴如水,又将迎来新的工作,新的挑战,一定有不少可以计划的东西吧。...
屏幕后处理 高斯模糊和Bloo... 高斯模糊 滤波:在图像处理中,通过滤波强调图片的一些特征或去除图片中一些...
安全生产检查工作计划 安全生产检查工作计划(15篇)  人生天地之间,若白驹过隙,忽然而已,又将迎来新的工作,新的挑战,写...
儿童保健工作计划范文 儿童保健工作计划范文(精选3篇)  光阴迅速,一眨眼就过去了,我们又将续写新的诗篇,展开新的旅程,该...
小学二年级班主任德育工作计划 小学二年级班主任德育工作计划(通用11篇)  时间过得太快,让人猝不及防,我们的工作又将在忙碌中充实...
描写尴尬的好句 描写尴尬的好句  在日常学习、工作或生活中,大家都知道一些经典的句子吧,根据语气的不同句子可以分为陈...
AcWing 3382. 整数... 乍一眼看到还以为做个解空间树和dfs就做出来了...#include using namespace...
C语言实例:判断元音/辅音,三... C 语言实例 - 判断元音/辅音 以下是一个简单的 C 语言程序,可以帮助您判断输入的...
【Java版oj】day13参... 目录  一、参数解析 (1)原题再现 (2)...
经典版英文表白句子 经典版英文表白句子  1、I miss you!i want to see you now alth...
改变人生的经典句子 改变人生的经典句子  无论是在学校还是在社会中,大家或多或少都接触过一些经典的句子吧,句子是语言运用...
名师工作室成员工作计划 名师工作室成员工作计划  时光在流逝,从不停歇,又迎来了一个全新的起点,不妨坐下来好好写写工作计划吧...
唯美女生句子 唯美女生句子75句  你走进了我那个曾经下着雪的内心,令我不知所措。下面是小编精心整理的唯美女生句子...
Android 进程间通信机制... 一. 简介         要想启动一个应用,首先要保证这个应用所需要的进程已经启动过...