scala
文章平均质量分 70
zhifeng687
这个作者很懒,什么都没留下…
展开
-
scala introduce
这篇文档给予了scala语言及其编译器的快速介绍。假设阅读者具有面向对象编程,尤其是在java上的经验。使用hello world作为第一个例子object HelloWorld { def main(args: Array[String]) { println("Hello, world!") }}Java程序员应该熟悉这个程序的结构:它包含一个名为main的方法,...翻译 2017-01-19 00:20:42 · 633 阅读 · 0 评论 -
scala- object and companion object
转载自:Scala:伴生对象的实现原理参考:Scala object and trait having same namescala API -Singleton ObjectsTraits and classes can have companion objects (an object with the same name as the class/trait).Compan...转载 2017-01-24 20:20:12 · 745 阅读 · 0 评论 -
scala-函数式编程
将函数赋值给变量// Scala中的函数是一等公民,可以独立定义,独立存在,而且可以直接将函数作为值赋值给变量// Scala的语法规定,将函数赋值给变量时,必须在函数后面加上空格和下划线def sayHello(name: String) { println("Hello, " + name) }val sayHelloFunc = sayHello _sayHelloFunc(...转载 2017-02-16 00:07:04 · 370 阅读 · 0 评论 -
scala-模式匹配
模式匹配// Scala是没有Java中的switch case语法的,相对应的,Scala提供了更加强大的match case语法,即模式匹配,类替代switch case,match case也被称为模式匹配// Scala的match case与Java的switch case最大的不同点在于,Java的switch case仅能匹配变量的值,比1、2、3等;而Scala的match...转载 2017-02-03 15:18:11 · 406 阅读 · 0 评论 -
scala 类的继承机制
extends// Scala中,让子类继承父类,与Java一样,也是使用extends关键字// 继承就代表,子类可以从父类继承父类的field和method;然后子类可以在自己内部放入父类所没有,子类特有的field和method;使用继承可以有效复用代码// 子类可以覆盖父类的field和method;但是如果父类用final修饰,field和method用final修饰,则该类是...转载 2017-01-27 00:56:34 · 429 阅读 · 0 评论 -
scala trait
将trait作为接口使用// Scala中的Triat是一种特殊的概念// 首先我们可以将Trait作为接口来使用,此时的Triat就与Java中的接口非常类似// 在triat中可以定义抽象方法,就与抽象类中的抽象方法一样,只要不给出方法的具体实现即可// 类可以使用extends关键字继承trait,注意,这里不是implement,而是extends,在scala中没有imple...转载 2017-01-24 19:40:12 · 716 阅读 · 0 评论 -
scala - implicit
概述在scala中的implicit意味着可以将一种数据类型自动转换为另一种数据类型,或者在方法调用时某些参数可以自动传递给方法。隐式类型转换(implicit conversion)隐式类型转换简单的说,如果在类C的对象o上调用方法m,并且该类不支持方法m,那么Scala将寻找从C到支持m的隐式转换。String类型的隐式转换scala.Predef定义了String类型的2...原创 2017-02-14 18:33:51 · 556 阅读 · 0 评论 -
scala class
主构造器Scala 声明主构造函数的过程和 Java 区别很大; Java 中构造器函数的定义一目了然, 由于Scala 的设计者认为每敲一个键都是珍贵的, 所以把 Scala 主构造器的定义和类的定义交织在一起, 导致 Scala 的主构造器没法像 Java 的构造器那样清晰了。Scala 之父 Martin Odersky 建议我们这样来看待主构造器, "在 Scala 中, 类也接受参...转载 2017-01-22 23:32:10 · 375 阅读 · 0 评论 -
scala 泛型的6种使用方式
/** * 1,scala的类和方法、函数都可以是泛型。 * * 2,关于对类型边界的限定分为上边界和下边界(对类进行限制) * 上边界:表达了泛型的类型必须是"某种类型"或某种类型的"子类",语法为“<:”, * 下边界:表达了泛型的类型必须是"某种类型"或某种类型的"父类",语法为“>:”, * * 3, "<%" :view bounds可转载 2017-01-23 03:39:02 · 1309 阅读 · 0 评论 -
scala-传名函数和传值函数
scala函数的参数可以是一般的数值,也可以是一个函数。例如:scala> def time() = { | println("Getting time in nano seconds") | System.nanoTime | }time: ()Longscala> def delayed(t: Long)={ | println(...转载 2017-01-20 01:12:18 · 288 阅读 · 0 评论 -
scala 下划线用法
概述下划线最常用的地方是:scala中要显式指定初始值。可以用_让编译器自动帮你设置初始值。private var reporterThread: Thread = _1、作为“通配符”类似Java中的*。如import scala.math._2、可变参数序列:_*作为一个整体,告诉编译器你希望将某个参数当作参数序列处理!例如val s = sum(1 to 5:_*)...转载 2017-01-20 16:59:38 · 397 阅读 · 0 评论 -
scala.Function1和scala.Function2
Function1带一个参数的方法,声明时,它需要两个泛型参数,第一个是传入的数据类型,第二个表示返回的数据类型,Function1是 trait ,它有一个apply方法,用来对输入参数进行处理了,使用Function1,必须实现apply接口object Main extends App {val succ = (x: Int) => x + 1val anonfun1 =...翻译 2017-01-19 03:03:13 · 1271 阅读 · 0 评论 -
scala 多态方法(POLYMORPHIC METHODS)
Scala 中的方法可以通过类型和值进行参数化。语法和泛型类类似。类型参数用方括号[]括起来,而值参数用圆括号()括起来。翻译 2017-01-24 21:25:10 · 1564 阅读 · 0 评论