scala 基本类型和操作

Posted 牵牛花

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

以上是关于scala 基本类型和操作的主要内容,如果未能解决你的问题,请参考以下文章

scala 基本类型和操作

scala编程——基本类型和操作

scala基础

Scala 基础—— 基础类型和基础操作

Scala中的变量类型和操作

scala与java的区别