则c的结果是List(1,3,4),需要注意的是,1:: b操作,::是右侧对象的方法,即它是b对象的方法,而::左侧的运算数是::方法的参数,所以1::b的含义是b.::(1)
在Scala中,+,-,*,/都是函数,比如 1+2,实质上是对象1上调用+函数,传入的参数是2,等价于(1).+(2)
Scala
中的
=>
符号可以看做是创建函数实例的语法糖。例如:
A => T
,
A,B => T
表示一个函数的输入参数类型是“
A
”,“
A,B
”,返回值类型是
T
。请看下面这个实例:
scala> val f: Int => String = myInt => "The value of myInt is: " + myInt.toString()
f: Int => String = <function1>
scala> println(f(3))
The value of myInt is: 3
上面例子定义函数f
:输入参数是整数类型,返回值是字符串。
另外,() => T
表示函数输入参数为空,而A => Unit
则表示函数没有返回值
[java]
view plain
- val pair = (99, "Luftballons")
- println(pair._1)
- println(pair._2)
_N用于访问元组的第N个元素(N从1开始算起),元组不同于List或者Array,元组(Tuple)中的元素可以不同
->方法是所有Scala对象都有的方法,比如A->B,->方法调用的结果是返回一个二元的元组(A,B)
::::::::运算符:::(三个冒号)表示List的连接操作,比如: Java代码val a = List(1, 2) val b = List(3, 4) val c = a ::: b [java] view plain copyval a = List(1, 2) val b = List(3, 4) val c = a ::: b 其中a,b保持不变,a和b连接产生一...
目录Scala 特殊符号含义1. :::2. ::3. =>4. :+ 和 +:5. ++6. <-7. ->8. ++=9. _10. +=11. -=3.1 值3.2 类型9.1 通配符9.2 指代集合中的每一个元素9.3 获取元组中指定下标的元素值9.4 使用模式匹配可以用来获取元组的组员9.5 代表某一类型的默认值9.6 :_* 作为一个整体,告诉编译器你希望将某个参数当做数序列处理 正文
date: 2019-08-01 11:15:27
updated: 2019-0
Scala的运算符1.算术运算符2 赋值运算符3.关系运算符4.逻辑运算符5.位运算符5.1铺垫知识5.1.1进制5.1.2 8421码5.1.3整数的原码、反码、补码计算规则5.2 位运算符
运算符:用来拼接变量或常量的符号
表达式:通过运算符连接起来的式子
在Scala中,运算符并不仅仅是运算符,也是函数的一种
Scala中没有三元运算符,被if-else代替了
1.算术运算符
Scala中是没有++,–这两个算术运算符的,这点和Java不一样
整数相除的结果,还是整数;如
找遍scala的操作符表都没找到,回头才发现,原来这是一个for循环的条件,只不过在scala的函数中,小括号和大括号是一样的。
另外"←" "<-"这两个符号也是一样的效果。
这里类...
\(双反斜杠) 表示:我想要在正则表达式中插入一个普通的(字面上的)反斜杠,请不要给它任何特殊的意义。
②在 Java /scala中:
\(双反斜杠) 表示:我要插入一个正则表达式的反斜线,所以其后的字符具有特殊的意义。
根据 Java Language Specification 的要求...
1. Scala变量
在Scala中,变量可以使用var关键字定义为可变变量或使用val关键字定义为不可变变量。例如,在Scala中,我们可以定义一个可变的整数变量如下:
var age: Int = 25
age = 30
在上面的代码中,我们定义了一个名为age的变量,并将其初始化为25。然后,我们又将其值更改为30。
另外,我们也可以定义一个不可变的字符串变量如下:
val name: String = "John"
在上面的代码中,我们定义了一个名为name的变量,并将其初始化为字符串“John”。由于它是不可变的,我们不能更改它的值。
2. 访问修饰符
Scala中有三种访问修饰符:private、protected和public。默认情况下,Scala中的所有成员都是public的。以下是这些访问修饰符的解释:
- private修饰符:只能在定义该成员的类或对象内部使用。如果一个成员被private修饰符修饰,那么它只能被同一个类或对象的其他成员访问。
- protected修饰符:只能在定义该成员的类、对象或子类中使用。如果一个成员被protected修饰符修饰,那么它可以被同一个类、对象或子类中的其他成员访问。
- public修饰符:可以在任何地方使用。如果一个成员没有被private或protected修饰符修饰,那么它就是public的。
以下是这些修饰符的示例:
class Person {
private var age: Int = 25
protected var name: String = "John"
def displayAge() {
println(age)
class Student extends Person {
def display() {
println(name)
在上面的代码中,我们定义了一个名为Person的类,并在其中定义了一个名为age的私有变量和一个名为name的受保护变量。然后,我们定义了一个名为Student的类,并在其中定义了一个名为display的方法。该方法可以访问父类中的受保护变量name,但无法访问私有变量age。
3. 运算符
Scala中支持所有常见的算术、比较、逻辑和位运算符。以下是其中的一些示例:
val x = 10
val y = 20
val z = 25
println("x + y = " + (x + y))
println("x - y = " + (x - y))
println("x * y = " + (x * y))
println("y / x = " + (y / x))
println("y % x = " + (y % x))
println("z << 2 = " + (z << 2))
println("z >> 2 = " + (z >> 2))
println("z >>> 2 = " + (z >>> 2))
println("x & y = " + (x & y))
println("x | y = " + (x | y))
println("!(x == y) = " + !(x == y))
println("x < y && x < z = " + (x < y && x < z))
println("x < y || x < z = " + (x < y || x < z))
在上面的代码中,我们使用了加、减、乘、除和模运算符,以及左移、右移、无符号右移、按位与、按位或、逻辑非、逻辑与和逻辑或运算符。