- 博客(11)
- 收藏
- 关注
转载 抽象类型
在本专题开始,我们看到“Type T”的用法,这是声明一个抽象类型,本篇介绍这种声明的意义和用途。和其它类型的抽象类型一样,抽象类型定义也是定义了一个“占位符”类型,其具体定义由其子类声明。不同的子类可以定义不同T的具体类型。 下面我们通过一个例子来说明抽象类型的用法,假定你需要为动物的饮食习性建模, 你可能会定义如下的数据结构:class Food abstract class Animal {
2016-08-24 23:21:22
311
转载 类与类型
在Java里,一直到jdk1.5之前,我们说一个对象的类型(type),都与它的class是一一映射的,通过获取它们的class对象,比如 String.class, int.class, obj.getClass() 等,就可以判断它们的类型(type)是不是一致的。而到了jdk1.5之后,因为引入了泛型的概念,类型系统变得复杂了,并且因为jvm选择了在运行时采用类型擦拭的做法(兼容性考虑),类型
2016-08-22 23:54:34
685
转载 Scala List使用事项
把Scala List的几种常见方法梳理汇总如下,日常开发场景基本上够用了。创建列表 scala> val days = List(“Sunday”, “Monday”, “Tuesday”, “Wednesday”, “Thursday”, “Friday”, “Saturday”) days: List[String] = List(Sunday, Monday, Tuesday,
2016-08-17 21:48:38
1114
转载 提前定义及对象构造顺序
//动物类,表示一般的动物可以感知前方10的单位的范围 class Creature{ val range=10 val env=new ArrayInt }//蚂蚁是近视的 class Ant extends Creature{ override val range=2 }object DefineAdvanced { def main(args: Array[St
2016-08-09 21:20:58
343
转载 scala-协变、逆变、上界、下界
阅读目录Scala的协变Scala的逆变下界lower bounds上界upper boundsView Bound <%Context Bound参考测试源代码欢迎大家关注: scala工具库 ,里面包含各种库的测试用例和使用说明文档说明文档当我们定义一个协变类型List[A+]时,List[Child]可以是List[Parent]的子类型。当我们定义一个逆变类型List[-A]
2016-08-07 20:35:19
333
3
原创 函数调用时的retrun表达式
注意点 - 在匿名函数中可以使用return直接返回上级函数值. - 在带名函数中使用return值, 必须在函数中明确返回值类型.声明一个函数, 使用换名调用参数, 注意此时的函数调用, 函数参数均为:=> 形式, 并且使用柯里化方式创建 def until(condition: => scala.Boolean)(block: => Unit): Unit = { block
2016-08-07 16:52:32
332
原创 换名调用函数
这是一个语法糖用于解决如下问题def runInThread1(block: () => Unit): Unit = { new Thread(new Runnable { override def run() { block() } }).start() } runInThread1 { () => println("he
2016-08-07 16:34:44
758
原创 类重写字段详解
def只能重写另一个defval只能够重写另外一个val或者不带参数的defvar只能重写另一个抽象的varpackage com.test.scala/** * Created by xuwei on 16/8/6. */object TestObjectOverride extends App { val stu = new Student println("before:
2016-08-06 15:24:53
328
原创 Scala集合与Spark解析
Scala集合与Spark解析在scala的集合体系中, Iterable时共同的Trait., Iterable要求继承者实现一些共同的方法, 例如对元素的遍历等.Array时一个非常基础的数据结构, 不属于Scala集合体系中.Scala的集合体系中分为可变集合和不可变集合, 分别在scala.collection.mutable和scala.collection.immutable包中.
2016-08-02 22:03:09
704
原创 Scala入门No.2-面向接口编程
@(Spark)[接口]当接口中没有抽象方法, 则该接口时接口工具类, 子类继承该类纯为了使用该接口方法接口可以用多重继承, 其中基类为extends, 其他的使用多个with进行继承scala的接口支持多重继承, 但是类或者抽象类不支持多重继承, 多重继承使用with(混入) -使用with trait中的属性会注入当前类, 使用extends, trait中的属性在父类对象中with关
2016-07-29 23:38:51
214
原创 Scala入门No.1
Scala中的对象和类的思考点子对象继承父class, 可以使用父class中的任何有访问权限的接口, 模板方法子对象不可引用父类object中的方法, 提升了子类复写父类方法, 必须声明override子类重写父类属性,必须声明override父类需要强转成子类时, 可以用如下代码if(a isInstanceOf [B]) { println(a.asInstanceOf[
2016-07-28 23:53:10
152
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人