scala 关于scala:Scala-隐式转换 有时候咱们看scala代码的时候,会发现明明没有这个类的类型或者函数,甚至是没有这个类,编译器不仅没有报错,程序还能够失常运行,其实这里就用到了scala的隐式转换。
scala 关于scala:Scala-模式匹配 咱们这里以字符串为例。关键字是match,case前面通过=>来分隔匹配的模式以及匹配后的代码。case是各个分支,如果匹配胜利,就会执行相应的代码块,这里的代码块能够不必大括号。如果都不匹配,那旧执行case _里的代码块,绝对于java的default。
scala 关于scala:Scala-映射 读取元素,通过get的话,当有值的时候,失去Some,没有值的话,失去None。因为是Some,须要再加一个get才能够获取具体的值,也能够通过(key)失去具体的值。如果不确定值是否存在,能够用getOrElse办法,前面带默认值,没有对应的值的话,就返回这个默认值。
scala 关于scala:Scala-序列 定义List,包含List的apply、:: Nil、以及:::来定义。Nil是空的汇合,::是head元素和tail列表组成一个新的列表,而且这个是从前面开始计算的,所以上面的也绝对于3::Nil先计算,而后是2::(3 :: Nil),最初是1::(2::(3 :: Nil))。如果head是一个List,那用::的话,第一个元素还是List,所以要用:::来造成新的列表,能够看…
scala 关于scala:Scala-数组 数组分为可变数组ArrayBuffer和不可变数组Array。ArrayArray是不可变数组,这里的不可变是指对象的援用不能变,他的长度是固定的不能变的,然而他的元素却是能够更改的。定义一个不可变数组: {代码…} 读取、批改: {代码…} 转为字符串,并用-连贯: {代码…} 求最大值、最小值、求和: {代码…} 往前面或前面新增…
scala 关于scala:Scala-特质Trait 在scala中,有一个既相似java接口的又相似java抽象类的概念,叫做特质Trait。咱们能够把他当作接口来用,应用形式和java的接口相似,也能够把他当作抽象类应用,应用形式就和java的抽象类相似。然而不论用接口还是形象的形式,都是应用关键字extends。接口的形式:
scala 关于scala:Scala-伴生对象 在后面的文章中,可能也有人留神到main办法并没有像java的static关键字,而且运行main办法的类定义的是object。object定义的类和class定义的类名字还能够一样。比方class ScalaObject和object ScalaObject,咱们能够说object ScalaObject是class ScalaObject的伴生对象,class ScalaObject是object ScalaObject的伴生类…
scala 关于scala:Scala-抽象继承多态 scala的形象关键字和java一样,都是abstract,而且抽象类都不能被实例化的。除了类能够定义为形象的,类的属性和办法,也能够是形象的。从上面的例子中,能够看到其实和java的抽象类定义没有什么区别
scala 关于scala:Scala-类的定义 成员变量在java中,咱们定义一个类是这样的: {代码…} 调用是这样的: {代码…} 在scala中,会比拟简洁一点,类的定义如下,因为scala中变量的定义都要有初始值,所以咱们这边能够定义为下划线阐明是空。 {代码…} 调用是这样的: {代码…} 看起来咱们是间接调用对象的属性,实际上是scala暗藏了setter和getter,我…