你好,游客 登录
背景:
阅读新闻

Scala+Spark大数据编程入门教程(003)-Scala基本数据类型、范围、转换

[日期:2018-09-09] 来源:www.bigdatastudy.net  作者:艾叔 [字体: ]

本节介绍Scala的常用基本数据类型,基本数据类型就好像盖房子的构件,只有对它们非常清楚,才能盖得起高楼大厦。本节将介绍Scala9种常用基本数据类型,以及它们的范围、范围查看方法、类型间的转换方法。

1.1  Scala常用基本数据类型和范围

Scala的基本数据类型和范围如下

1-1 Scala基本数据类型及说明

序号

类型名称

字节数

取值范围

使用说明

1

Byte

1

-128~127

1字节,8位,有符号整型

2

Char

2

0~65535

Unicode字符,2字节,16位无符号

3

Short

2

-32768~32767

2字节,16,有符号整型

4

Int

4

-2147483648~2147483647

4字节,32位,有符号整型

5

Long

8

-9223372036854775808~

9223372036854775807

8字节,64位,有符号整型

6

Float

4

-3.4028235E38~3.4028235E38

4字节,32位,IEEE754单精度浮点型

7

Double

8

-1.7976931348623157E308~

1.7976931348623157E308

8字节,64位,IEEE754双精度浮点型

8

Boolean

 

true/false

Boolean类型只有truefalse两个值

9

Unit

 

()

Unit类型只有1个实例,用一个括号()表示

以上9种基本数据类型,都是class,例如:val num=1为例,numInt类型,Int是一个classnum则是一个引用,它指向值为1Int对象(实例),num有自己的方法,例如各种转换方法等,同时数值1也有自己的方法,如getClass,总之,Scala中,一切皆对象;

& Byte是单字节的,可以存放ASCII

& ScalaCharJavaChar一样,都是2字节的,存放单个字符,包括英文和中文字符;

& String不是Scala中的基本数据类型,Scala中的String直接使用的是Java中的String类。

1.2  Scala基本数据类型的类继承关系

因为Scala的数据类型都是class,它们的继承关系如下所示,上节中的DoubleFloatLongIntShortByteUnitBooleanChar的父类是AnyValAnyValAnyRef的父类是Any

 

 

1-1 Scala数据类型的类继承关系图

1.3  查看基本数据类型的范围

1.1中列出了Scala各种基本数据类型所能表示的数值范围,要记住这些范围很麻烦,Scala提供了一种简单的方���,来查看它们的范围。

使用MaxValueMinValue函数可以查看各种类型的范围:

scala> Byte.MaxValue

res1: Byte = 127

scala> Byte.MinValue

res2: Byte = -128

注意Char无法直接查看,要转换成Int才显示数值,否则,只会字符(或者乱码)

scala> Char.MinValue.toInt

res43: Int = 0

scala> Char.MaxValue.toInt

res44: Int = 65535

 

1.4  数据类型转换

Scala提供了专门的方法用于数据类型的转换

Scala的类型转换不是强制类型转换,而是每种类型都提供了toXXX,来转换为其它的类型,例如

1Int类型,转换为LongDouble

scala> 1

res23: Int = 1

scala> 1.toLong

res24: Long = 1

scala> 1.toDouble

res25: Double = 1.0

 

使用Tab键,可以看到to可以转换的各种类型

scala> 1.to

toByte     toChar     toDouble   toFloat    toInt      toLong     toShort    toString  

 

例如ASCII码之间的转换

scala> 'A'.toInt

res30: Int = 65

scala> 65.toChar

res31: Char = A

 

原创文章,转载请注明: 转载自大数据学习网,作者:艾叔

本文链接地址

艾叔:Scala+Spark大数据编程入门教程(001-ScalaJava比较、Scala对于初学者的缺点?

艾叔:Scala+Spark大数据编程入门教程(002-ScalaSpark的关系、Spark为什么用Scala来开发?

艾叔:Scala+Spark大数据编程入门教程(003-Scala基本数据类型、范围、转换

艾叔:Scala+Spark大数据编程入门教程(004-ScalaSpark经典入门书籍推荐

 

 

 

 

 

 

收藏 推荐 打印 | 阅读: