Scala中的基本类型 与操作符

基本类型和操作
========================
 
类型说明,与java一致
 
值类型 范围   
Byte 8位有符号补码整数(-27~27-1)   
Short 16位有符号补码整数(-215~215-1)   
Int 32位有符号补码整数(-231~231-1)   
Long 64位有符号补码整数(-263~263-1)   
Char 16位无符号Unicode字符(0~216-1)   
String 字符序列   
Float 32位IEEE754单精度浮点数   
Double 64位IEEE754单精度浮点数   
Boolean true或false  


特殊字符:
 
文本 含义   
\n 换行(\u000A)   
\b 回退(\u0008)   
\t 制表符(\u0009)   
\f 换页(\u000C)   
\r 回车(\u000D)   
\" 双引号(\u0022)   
\' 单引号(\u0027)   
\\ 反斜杠(\u005C)  




=======================================


符号文本 
符号文本被写成'<标识符>,这里<标识符>可以是任何字母或数字的标识符。
如: var a = 'cymbal


============================================


操作符和方法


任何方法都可以是操作符 


与中缀操作符操作符带后两个操作数,一个在左一个在右相反,前缀和后缀操作符都是一元:unary的:它们仅带一个操作数


可以当作前缀操作符用的标识符只有+,-,!和~


后缀操作符是不用点或括号调用的不带任何参数的方法
Scala里,你可以舍弃方法调用的空括号。例外就是如果方法带有副作用就加上括号,如println(),不过如果方法没有副作用就可以去掉括号,如String上调用的toLowerCase: 


================================


数学运算
你可以通过中缀操作符,加号(+),减号(-),乘号(*),除号(/)和余数(%),在任何数类型上调用数学方法 , scala中的基础运算与java一致
scala> 1.2 + 2.3 
res6: Double = 3.5 
scala> 3 - 1 
res7: Int = 2 
scala> 'b' - 'a' 
res8: Int = 1 
scala> 2L * 3L 
res9: Long = 6 
scala> 11 / 4 
res10: Int = 2 
scala> 11 % 4 
res11: Int = 3 
scala> 11.0f / 4.0f 
res12: Float = 2.75 
scala> 11.0 % 4.0 
res13: Double = 3.0


========================================
关系和逻辑操作
你可以用关系方法:大于(>),小于(<),大于等于(>=)和小于等于(<=)比较数类型,像等号操作符那样,产生一个Boolean结果。另外,你可以使用一元操作符!(unary_!方法)改变Boolean值
scala> 1 > 2 
res16: Boolean = false 
scala> 1 < 2 
res17: Boolean = true 
scala> 1.0 <= 1.0 
res18: Boolean = true 
scala> 3.5f >= 3.6f 
res19: Boolean = false 
scala> 'a' >= 'A' 
res20: Boolean = true 
scala> val thisIsBoring = !true 
thisIsBoring: Boolean = false 
scala> !thisIsBoring
res21: Boolean = true


scala> val toBe = true 
toBe: Boolean = true 
scala> val question = toBe || !toBe 
question: Boolean = true 
scala> val paradox = toBe && !toBe 
paradox: Boolean = false 



===================================


对象相等性
scala> List(1, 2, 3) == List(1, 2, 3) 
res27: Boolean = true 
scala> List(1, 2, 3) == List(4, 5, 6) 
res28: Boolean = false
scala> List(1, 2, 3) == null 
res31: Boolean = false 
scala> null == List(1, 2, 3) 
res32: Boolean = false 
===== ===== ==== 
scala> ("he" + "llo") == "hello" 
res33: Boolean = true 
=== 比较2个不同的对象
scala> 1 == 1.0 
res29: Boolean = true 


基本类型只能用==,!=, >,< 进行比较, 但是引用类型是用eq,ne,== , !=进行比较:


Scala的==与Java的有何差别 Java里的既可以比较原始类型也可以比较参考类型。对于原始类型,Java的==比较值的相等性,如Scala。然而对于参考类型,Java的==比较了参考相等性:reference equality,也就是说这两个变量是否都指向于JVM堆里的同一个对象。Scala也提供了这种机制,名字是eq。不过,eq和它的反义词,ne,仅仅应用于可以直接映射到Java的对象。


========================================
scala中的优先级和关联性。
 
 
(所有其他的特殊字符)   
* / %   
+ -   
:   
= !   
< >   
&   
^   
|  




======================================
富包装器 


8 到目前为止,你应该能指出给出的这段代码,Scala编译器会调用成(bills.!*&^%~(code)).!()。 
表格5.4 一些富操作 
 
代码 结果   
0 max 5 5   
0 min 5 0   
-2.7 abs 2.7   
-2.7 round -3L   
1.5 isInfinity false   
(1.0 / 0) isInfinity true   
4 to 6 Range(4, 5, 6)   
"bob" capitalize "Bob"   
"robert" drop 2 "bert"  


富包装类 
 
基本类型 富包装   
Byte scala.runtime.RichByte   
Short scala.runtime.RichShort   
Int scala.runtime.RichInt   
Long scala.runtime.RichLong   
Char scala.runtime.RichChar   
String scala.runtime.RichString   
Float scala.runtime.RichFloat   
Double scala.runtime.RichDouble   
Boolean scala.runtime.RichBoolean  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
上百节课详细讲解,需要的小伙伴自行百度网盘下载,链接见附件,永久有效。 课程亮点: 1,知识体系完备,从小白到大神各阶段读者均能学有所获。 2,生动形象,化繁为简,讲解通俗易懂。 3,结合工作实践及分析应用,培养解决实际问题的能力。 4,每一块知识点, 都有配套案例, 学习不再迷茫。 课程简介 第一章 环境搭建 00.导学 01.Scala简介 02.Scala程序和Java程序对比 03.Scala环境搭建 04.Scala解释器 05.案例_做最好的自己 第二章 变量和数据类型 00.导学 01.输出语句和分号 02.Scala的常量 03.Scala的变量 04.字符串的定义 05.惰性赋值 06.标识符 07.数据类型 08.类型转换 09.值类型和String类型之间的相互转换 10.键盘录入功能 11.案例_打招呼 第三章 运算符 001.导学 01.算术运算符 02.赋值运算符 03.关系运算符 04.逻辑运算符 05.进制和8421码 06.原反补码计算规则 07.位运算符 08.案例_交换变量值 第四章 流程控制结构 00.导学 01.流程控制结构之顺序结构 02.选择结构之单分支结构 03.选择结构之双分支结构 04.选择结构之多分支结构 05.选择结构之注意事项 06.选择结构之嵌套分支 07.扩展_块表达式 08.for循环之简单循环 09.for循环之循环嵌套 10.for循环之守卫 11.for循环之推导式 12.while循环 13.do.while循环 14.break和continue的用法 15.综合案例_九九乘法表 16.综合案例_模拟登陆 第五章 方法和函数 00.导学 01.方法入门 02.返回值的类型推断 03.惰性方法 04.方法参数 05.方法调用方式 06.函数入门 07.方法和函数的区别 08.案例_打印nn乘法表 第六章 面向对象入门 00.导学 01.类和对象的相关概念 02.创建类和对象 03.创建类和对象的简写形式 04.定义和访问成员变量 05.使用下划线初始化成员变量 06.定义和访问成员方法 07.访问权限修饰符 08.主构造器 09.辅助构造器 10.定义单例对象 11,在单例对象定义方法 12.如何定义程序的主入口 13.定义伴生对象 14.private[this]访问权限 15.apply()方法 16.案例_定义工具类 第七章 继承 00.导学 01.继承入门 02.单例对象的继承 03.方法重写 04.isInstanceOf和asInstanceOf 05.getClass和ClassOf关键字 06.抽象类入门 07.抽象字段 08.匿名内部类 09.动物类案例 第八章 特质 00.导学 01.类继承单个特质 02.类继承多个特质 03.单例对象继承特质 04.演示trait的成员 05.动态混入trait 06.使用trait实现适配器设计模式 07.使用trait实现模板方法模式 08.使用trait实现职责链模式 09.trait的构造机制 10.trait继承class 11.案例_程序员类 第九章 包_样例类_样例对象 00,导学 01.包的简介和格式 02.包的作用域 03.包对象 04.包的可见性 05.包的引入 06.样例类入门案例 07.样例类的默认方法 08.样例对象 09.案例_计算器 第十章 常用容器(数组, 元组, 集合等) 00.导学 01.创建定长数组 02.创建变长数组 03.变长数组的增删改操作 04.遍历数组 05.数组的常用算法 06.创建元组对象 07.访问元组的元素 08.创建不可变列表 09.创建可变列表 10.可变列表的常用操作 11.列表的常用操作之基础操作 12.列表的常用操作之扁平化 13.列表的常用操作之拉链与拉开 14.列表的常用操作之转换字符串 15.列表的常用操作之求并集,交集,差集 16.创建不可变集 17.不可变集的常见操作 18.创建可变集 19.创建不可变Map 20.创建可变Map 21.Map的基本操作 22.使用迭代器遍历集合 23.函数式编程之foreach 24.函数式编程之简化函数定义 25.函数式编程之映射 26.函数式编程之扁平化映射 27.函数式编程之过滤 28.函数式编程之默认排序 29.函数式编程之指定字段排序 30.函数式编程之自定义排序 31.函数式编程之分组 32.函数式编程之聚合操作 33.函数式编程之折叠操作 34.综合案

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值