做网站的公司msgg,秦皇岛手机网站制作公司,动漫制作好找工作吗,我做的网站搜不到1.数据类型 1.1 类型支持 Scala 拥有下表所示的数据类型#xff0c;其中 Byte、Short、Int、Long 和 Char 类型统称为整数类型#xff0c;整数类型加上 Float 和 Double 统称为数值类型。Scala 数值类型的取值范围和 Java 对应类型的取值范围相同。 数据类型 描述 Byte 8 … 1.数据类型 1.1 类型支持 Scala 拥有下表所示的数据类型其中 Byte、Short、Int、Long 和 Char 类型统称为整数类型整数类型加上 Float 和 Double 统称为数值类型。Scala 数值类型的取值范围和 Java 对应类型的取值范围相同。 数据类型 描述 Byte 8 位有符号补码整数。数值区间为 -128 到 127 Short 16 位有符号补码整数。数值区间为 -32768 到 32767 Int 32 位有符号补码整数。数值区间为 -2147483648 到 2147483647 Long 64 位有符号补码整数。数值区间为 -9223372036854775808 到 9223372036854775807 Float 32 位, IEEE 754 标准的单精度浮点数 Double 64 位 IEEE 754 标准的双精度浮点数 Char 16 位无符号 Unicode 字符, 区间值为 U0000 到 UFFFF String 字符序列 Boolean true 或 false Unit 表示无值等同于 Java 中的 void。用作不返回任何结果的方法的结果类型。Unit 只有一个实例值写成 ()。 Null null 或空引用 Nothing Nothing 类型在 Scala 的类层级的最低端它是任何其他类型的子类型。 Any Any 是所有其他类的超类 AnyRef AnyRef 类是 Scala 里所有引用类 (reference class) 的基类 1.2 定义变量 Scala 的变量分为两种val 和 var其区别如下 val 类似于 Java 中的 final 变量一旦初始化就不能被重新赋值 var 类似于 Java 中的非 final 变量在整个声明周期内 var 可以被重新赋值 scala val a1
a: Int 1scala a2
console:8: error: reassignment to val // 不允许重新赋值scala var b1
b: Int 1scala b2
b: Int 21.3 类型推断 在上面的演示中并没有声明 a 是 Int 类型但是程序还是把 a 当做 Int 类型这就是 Scala 的类型推断。在大多数情况下你都无需指明变量的类型程序会自动进行推断。如果你想显式的声明类型可以在变量后面指定如下 scala val c:Stringhello scala
c: String hello scala1.4 Scala解释器 在 scala 命令行中如果没有对输入的值指定赋值的变量则输入的值默认会赋值给 resX(其中 X 是一个从 0 开始递增的整数)res 是 result 的缩写这个变量可以在后面的语句中进行引用。 scala 5
res0: Int 5scala res0*6
res1: Int 30scala println(res1)
302.字面量 Scala 和 Java 字面量在使用上很多相似比如都使用 F 或 f 表示浮点型都使用 L 或 l 表示 Long 类型。下文主要介绍两者差异部分。 scala 1.2
res0: Double 1.2scala 1.2f
res1: Float 1.2scala 1.4F
res2: Float 1.4scala 1
res3: Int 1scala 1l
res4: Long 1scala 1L
res5: Long 12.1 整数字面量 Scala 支持 10 进制和 16 进制但不支持八进制字面量和以 0 开头的整数字面量。 scala 012
console:1: error: Decimal integer literals may not have a leading zero. (Octal syntax is obsolete.)2.2 字符串字面量 2.2.1 字符字面量 字符字面量由一对单引号和中间的任意 Unicode 字符组成。你可以显式的给出原字符、也可以使用字符的 Unicode 码来表示还可以包含特殊的转义字符。 scala \u0041
res0: Char Ascala a
res1: Char ascala \n
res2: Char 2.2.2 字符串字面量 字符串字面量由双引号包起来的字符组成。 scala hello world
res3: String hello world2.2.3 原生字符串 Scala 提供了 ... 语法通过三个双引号来表示原生字符串和多行字符串使用该种方式原生字符串中的特殊字符不会被转义。 scala hello \tool
res4: String hello oolscala hello \tool
res5: String hello \toolscala hello| world
res6: String
hello
world2.3 符号字面量 符号字面量写法为 标识符 这里 标识符可以是任何字母或数字的组合。符号字面量会被映射成 scala.Symbol 的实例如:符号字面量 x 会被编译器翻译为 scala.Symbol(x)。符号字面量可选方法很少只能通过 .name 获取其名称。 注意具有相同 name 的符号字面量一定指向同一个 Symbol 对象不同 name 的符号字面量一定指向不同的 Symbol 对象。 scala val sym ID008
sym: Symbol ID008scala sym.name
res12: String ID0082.4 插值表达式 Scala 支持插值表达式。 scala val namexiaoming
name: String xiaomingscala println(sMy name is $name,Im ${2*9}.)
My name is xiaoming,Im 18. 3.运算符 Scala 和其他语言一样支持大多数的操作运算符 - 算术运算符-*/% - 关系运算符! - 逻辑运算符 (||!|) - 位运算符 (~|^) - 赋值运算符 (-*/%^|) 以上操作符的基本使用与 Java 类似下文主要介绍差异部分和注意事项。 3.1 运算符即方法 Scala 的面向对象比 Java 更加纯粹在 Scala 中一切都是对象。所以对于 12,实际上是调用了 Int 类中名为 的方法所以 12,也可以写成 1.(2)。 scala 12
res14: Int 3scala 1.(2)
res15: Int 3Int 类中包含了多个重载的 方法用于分别接收不同类型的参数。 3.2 逻辑运算符 和其他语言一样在 Scala 中 || 的执行是短路的即如果左边的表达式能确定整个结果右边的表达式就不会被执行这满足大多数使用场景。但是如果你需要在无论什么情况下都执行右边的表达式则可以使用 或 | 代替。 3.3 赋值运算符 在 Scala 中没有 Java 中的 和 -- 运算符如果你想要实现类似的操作只能使用 1或者 -1。 scala var a1
a: Int 1scala a1scala a
res8: Int 2scala a-1scala a
res10: Int 13.4 运算符优先级 操作符的优先级如下优先级由上至下逐级递减。 在表格中某个字符的优先级越高那么以这个字符打头的方法就拥有更高的优先级。如 的优先级大于 也就意味则 的优先级大于以 开头的 所以 222 , 实际上等价于 2(22) : scala 222
res0: Int 32scala 2(22)
res1: Int 323.5 对象相等性 如果想要判断两个对象是否相等可以使用 和 !,这两个操作符可以用于所有的对象包括 null。 scala 12
res2: Boolean falsescala List(1,2,3)List(1,2,3)
res3: Boolean truescala 11.0
res4: Boolean truescala List(1,2,3)null
res5: Boolean falsescala nullnull
res6: Boolean true