大数据系列-scala类型定义

核心
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)