scala总体比较灵活,同时也就比较不容易上手,代码看起来吃力。相对于java,c++等面向对象的编程语言还是有比较大的差异。
一.符号=>的用法:
1.import中,
// 重命名成员
import java.util.{HashMap => JavaHashMap}
// 隐藏成员
import java.util.{HashMap => _, _}
// 引入了util包的所有成员,但是HashMap被隐藏了。
2.函数调用:使用 => 符号来设置传名调用
def delayed( t: => Long ) = {
println("在 delayed 方法内")
println("参数: " + t)
t
}
3.定义匿名函数:
(x: Int) => x + 1
//和如下JAVA方法表示的含义一样:
public int function(int x){
return x+1;
}
4.模式匹配:
x match {
case 1 => "one"
case 2 => "two"
case _ => "many"
}
二.符号 ->
例:val coll = Map(1 -> "Eins", 2 -> "Zwei", 3 -> "Drei")
->连字符和大于号的字符,类似于一个右箭头,是一个操作符,产生一个Tuple2。(1, "Eins")和1 -> "Eins"结果没有区别,只是前者更容易阅读
三.符号@ ;scala中 @ 除了是注解 以及 抽取XML的属性 功能以外 , 还有一个功能就是模式匹配中匹配类似some的值
参考:https://blog.youkuaiyun.com/duan_zhihua/article/details/53914304
四.with:类似java通过implement 继承interface。scala对象可以通过with继承Trait
trait Swim {
def swim = println("Swimming!")
}
class Person
val p1 = new Person // A Person who can't swim
val p2 = new Person with Swim // A Person who can swim