大数据系列-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的基本类型定义
整数类型变量定义:
浮点类型变量定义
浮点类型的变量还可以采用指数表示法如
常用特殊字符包括
字符串变量定义
布尔型定义
Scala基本类型的操作
在scala中一切操作皆方法,这意味着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实战系列(精品版)】:Scala入门教程014-Scala实战源码-Scala函数定义与调用方式
- 第五 讲 : 预定义数据类型 -【天轰穿.Net4趣味编程系列视频教程-vs2010轻松学习C#】
- 云星数据---Scala实战系列(精品版)】:Scala入门教程038-Scala实战源码-Scala match语句03 类型匹配
- 定义数据类型
- ExcelVBA编程系列之数据类型(1):常量
- MySQL查询优化系列讲座之数据类型与效率
- 深入Atlas系列:Web Sevices Access in Atlas(4) - 对于复杂数据类型的支持(上)
- C#中定义枚举类型数据
- MySQL查询优化系列讲座之数据类型与效率
- javascript 简单高效判断数据类型 系列函数 By shawl.qiu
- javascript 简单高效判断数据类型系列函数
- c#中的数据类型如何与API中的类型定义对应!
- 如何把"用户定义的数据类型"的ower改为dbo
- 数据类型和抽象数据类型是如何定义的。二者有何相同和不同之处,抽象数据类型的主要特点是什么?使用抽象数据类型的主要好处是什么?
- C++模板应用——在类模板实现中引用其内部定义的复合数据类型
- javascript 简单高效判断数据类型 系列函数 By shawl.qiu
- windows api中定义的基本数据类型简介
- 不熟悉数据类型的定义
- 修改用户定义的数据类型
- C#入门(2)简单预定义数据类型