随笔分类 -  scala

摘要:sortBy: sortBy[B](f: (A) ⇒ B)(implicit ord: math.Ordering[B]): List[A] 按照应用函数f之后产生的元素进行排序 sorted: sorted[B >: A](implicit ord: math.Ordering[B]): List 阅读全文
posted @ 2018-07-06 09:33 dy9776 阅读(2616) 评论(0) 推荐(0) 编辑
摘要:1 快速入门... 4 1.1 分号... 4 1.2 常变量声明... 4 1.2.1 val常量... 4 1.2.2 var变量... 4 1.2.3 类型推导... 5 1.2.4 函数编程风格... 5 1.3 Range. 5 1.4 定义函数... 6 1.5 while、if6 1. 阅读全文
posted @ 2018-07-05 21:43 dy9776 阅读(1515) 评论(0) 推荐(0) 编辑
摘要:前提: 当用到scala的sortWith,发现: def sortWith(lt: (A, A) ⇒ Boolean): List[A] // A为列表元素类型 根据指定比较函数lt进行排序,且排序是稳定的, 最终实质上是调用 java.util.Arrays.sort进行排序的。 eg: Lis 阅读全文
posted @ 2018-07-05 21:28 dy9776 阅读(1402) 评论(0) 推荐(0) 编辑
摘要:后续补充 阅读全文
posted @ 2017-12-19 16:13 dy9776 阅读(484) 评论(0) 推荐(0) 编辑
摘要:在函数式编程中有一个核心的概念之一是转换,所以大部份支持函数式编程语言,都支持一种叫map()的动作,这个动作是可以帮你把某个容器的内容,套上一些动作之后,变成另一个新的容器。 现在我们考虑如何用Option的map方法实现length: xxx的输出形式: 先算出 Option 容器内字符串的长度 阅读全文
posted @ 2017-08-24 18:37 dy9776 阅读(949) 评论(0) 推荐(0) 编辑
摘要:一、数组 1、定长数组 声明数组的两种形式: 声明指定长度的数组 val 数组名= new Array[类型](数组长度) 提供数组初始值的数组,无需new关键字 Scala声明数组时,需要带有Array类名,且使用 () 来指明长度或提供初始值序列。 在JVM中,Scala的Array以Java数 阅读全文
posted @ 2017-08-24 18:31 dy9776 阅读(1191) 评论(0) 推荐(0) 编辑
摘要:一、前言 大数据领域的Spark、Kafka、Summingbird等都是由Scala语言编写而成,相比Java而言,Scala更精炼。由于笔者从事大数据相关的工作,所以有必要好好学习Scala语言,之前也学习过,但是没有记录,所以就会忘记,感觉Scala确实比Java方便精炼很多,下面以Scala 阅读全文
posted @ 2017-08-24 18:28 dy9776 阅读(1145) 评论(0) 推荐(0) 编辑
摘要:scala object 转Class Scala强制类型转换 asInstanceOf[T] 将对象类型强制转换为T类型。 还是由于泛型存在类型擦除的原因,1.asInstanceOf[String]在运行时会抛出ClassCastException异常,而List(1).asInstanceOf 阅读全文
posted @ 2017-08-24 18:26 dy9776 阅读(2062) 评论(0) 推荐(0) 编辑
摘要:在scala中这四个类型名称很类似,作用确实完全不同的。 None是一个object,是Option的子类型,定义如下 [java] view plain copy print? case object None extends Option[Nothing] { def isEmpty = tru 阅读全文
posted @ 2017-08-24 18:21 dy9776 阅读(930) 评论(0) 推荐(1) 编辑
摘要:4种操作符的区别和联系 一、 :: 该方法被称为cons,意为构造,向队列的头部追加数据,创造新的列表。 用法为 x::list,其中x为加入到 头部的元素,无论x是列表与否,它都只将成为新生成列表的第一个元素,也就是说新生成的列表长度为list的长度+1(btw, x::list等价于list.: 阅读全文
posted @ 2017-03-14 11:46 dy9776 阅读(758) 评论(0) 推荐(0) 编辑
摘要:一、前言 前面学习了Scala的Methods,接着学习Scala中的Object 二、Object Object在Scala有两种含义,在Java中,其代表一个类的实例,而在Scala中,其还是一个关键字,本篇首先将会把object当成一个类的实例看待,展示如何将对象从一种类型转化为另一种类型,之 阅读全文
posted @ 2017-03-09 22:15 dy9776 阅读(653) 评论(1) 推荐(1) 编辑
摘要:App特质的作用 运行结果: 问题: 是怎么把封装的初始化代码块传给delayedInit(body: => Unit)的? 用反编译工具jd-gui.exe把上面生成的.class反编译出来,可以看到多出了好多个类, 其中主要的有 class AppInternals, delayedInitbo 阅读全文
posted @ 2017-01-24 19:33 dy9776 阅读(2457) 评论(0) 推荐(0) 编辑
摘要:掌握implicit的用法是阅读Spark源码的基础,也是学习Scala其它的开源框架的关键,implicit 可分为: 隐式参数 隐式转换类型 隐式调用函数 1.隐式参数 当我们在定义方法时,可以把最后一个参数列表标记为implicit,表示该组参数是隐式参数。一个方法只会有一个隐式参数列表,置于 阅读全文
posted @ 2017-01-24 10:31 dy9776 阅读(873) 评论(0) 推荐(0) 编辑
摘要:运算符优先级决定术语的表达式分组。这会影响一个表达式是如何进行计算。某些运算符的优先级高于其他;例如,乘法运算符的优先级比所述加法运算符优先级更高: 例如X =7 + 3* 2;这里,x 被赋值13,而不是20,因为运算符* 优先级高于+,所以它首先做乘法3 * 2,然后加上7。 这里,具有最高优先 阅读全文
posted @ 2017-01-22 09:24 dy9776 阅读(1697) 评论(0) 推荐(0) 编辑
摘要:Scala类 1 2 3 4 5 6 7 8 9 10 11 12 13 class Counter { private var value = 0 // 必须初始化字段 def increment() { value += 1 } // 方法默认公有 def current = value // 阅读全文
posted @ 2017-01-21 21:12 dy9776 阅读(834) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示