您的位置:首页 > 大数据

大数据系列-scala类型定义

2017-04-25 22:12 405 查看
核心

1、scala的基本类型

2、scala的类型操作

scala的基本类型

scala中的基本数据类型有

类型 范围

Byte 8位

Short 16位

Int 32位

Long 64位

Char 16位

String a sequence of Chars

Float 32位

Double 64位

Boolean true 和false

从上表中可以看出,scala的基本数据类型与java中的基本数据类型是一一对应的,不同的是scala的基本数据类型头字母必须大写

接下来以Int、String、Char、Double及Float类型为例介绍scala的基本类型定义

整数类型变量定义:

//16进制定义法
scala> val x=0x29
x: Int = 41
//十进制定义法
scala> val x=41
x: Int = 41
//八进制定义法
scala> 051
res1: Int = 41


浮点类型变量定义

//Double类型定义,直接输入浮点数,编译器会将其自动推断为Double类型
scala> val DoubleNumber=3.141529
DoubleNumber: Double = 3.141529
//要定义Float类型浮点数,需要在浮点数后面加F或f
scala> val floatNumber=3.141529F
floatNumber: Float = 3.141529

scala> val floatNumber=3.141529f
floatNumber: Float = 3.141529


浮点类型的变量还可以采用指数表示法如

//浮点数指数表示法,e也可以是大写E,0.314529e1与0.314529*10等同
scala> val floatNumber=0.314529e1
floatNumber: Double = 3.14529

字符串变量定义
//字符定义 用 ''将字符包裹
scala> val CharLiteral='A'
CharLiteral: Char = A


常用特殊字符包括

\n 换行符,其Unicode编码为(\u000A)
\b 回退符,其Unicode编码为(\u0008)
\t tab制表符,其Unicode编码为(\u0009)
\" 双引号,其Unicode编码为(\u0022)
\' 单引号,其Unicode编码为(\u0027)
\ 反斜杠,其Unicode编码为(\u005C)


字符串变量定义

scala> val hellword="hello world"
hellword: String = hello world

scala> val helloworldDoubleQuote="\"hello world\""
helloworldDoubleQuote: String = "hello world"

scala> println("""hello cruel world,\n \\\\ \b \\,I am " experienced" proprammer """)
hello cruel world,\n \\\\ \b \\,I am " experienced" proprammer


布尔型定义

scala> val x=true
x: Boolean = true


Scala基本类型的操作

在scala中一切操作皆方法,这意味着scala中的一切皆为对象

算术操作

//整数求和,编译器会将其转换为(1).+(2)执行
scala> val sum=1+2
sum: Int = 3
//前一个语句等同于下列语句
scala> val sum=(1).+(2)
sum: Int = 3
//操作符重载,编译器会将其转换为(1).+(2L)执行
scala> val longsum=1+2L
longsum: Long = 3
//减法
scala> 1-3
res3: Int = -2
//除法
scala> 1/3
res4: Int = 0
//取模
scala> 1%3
res5: Int = 1
//乘法
scala> 1L*3L
res6: Long = 3
//scala中可以用+ -符号来表示正负数,例如-3+3,并且可以加入到运算符当中
scala> val y=1+ -3
y: Int = -2


关系运算符

// >运算符
scala> 3 > -3
res8: Boolean = true
// < 运算符
scala> 3 < -3
res9: Boolean = false
// <= 运算符
scala> 3 <= -3
res10: Boolean = false
// <= 运算符
scala> 3 <= 3
res11: Boolean = true
// <= 运算符
scala> !(3<= -3)
res12: Boolean = true


逻辑运算

//逻辑与 &&
scala> val bool=true
bool: Boolean = true

scala> bool&&bool
res13: Boolean = true

scala> bool && !bool
res17: Boolean = false

//逻辑或 ||
scala> bool||bool
res14: Boolean = true

scala> bool || !bool
res16: Boolean = true


位运算

//00000001
//00000010
//00000000
//相同位的两个数字都为1,则为1;若有一个不为1,则为0
scala> 1 &2
res18: Int = 0
//00000001
//00000010
//00000011
//相同位只要一个为1即为1
scala> 1 | 2
res19: Int = 3
//00000001
//00000011
//00000010
//相同位不同则为1,相同则为0
scala> 1 ^ 3
res20: Int = 2
//00000001
//11111110
//把内存中的0和1全部取反
scala> ~1
res21: Int = -2
//00000110
//00001100
//左移位  等价于 6*2^位数
scala> 6 << 1
res22: Int = 12
//00000110
//00000011
//右移位 等价于 6/2^位数
scala> 6 >> 1
res23: Int = 3

//11111111111111111111111111111111
//00000000000000000000000000000001
//无符号右移
scala> -1 >>> 31
res24: Int = 1


对象比较

scala> 1==1
res27: Boolean = true

scala> 1==1.0
res28: Boolean = true

scala> val x="Hello"
x: String = Hello

scala> val y="Hello"
y: String = Hello
//scala中的对象比较不同于java的对象比较
//scala基于内容比较,而java中比较是引用,进行内容比较时须定义比较的方法
scala> x==y
res29: Boolean = true


运算符的优先级

运算符优先级 * / %优先级最高

* / %
+ -
:
= !
< >
&
^
|


优先级从上往下依次降低
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  scala 大数据 类型