scala开发语言
Michael_Shentu
感兴趣方向:分布式计算与存储,广告计算学,分布式数据挖掘与机器学习,Hadoop,Spark,HBase
展开
-
Scala的模式匹配机制
Scala强大的模式匹配机制,可以应用在switch语句、类型检查以及“析构”等场合。样例类对模式匹配进行了优化。更好的switch12345678var sign = ...val ch: Char = ... ch match { case '+' => sign转载 2017-02-08 16:02:09 · 1344 阅读 · 0 评论 -
使用Option、Some、None,避免使用null
避免null使用大多数语言都有一个特殊的关键字或者对象来表示一个对象引用的是“无”,在Java,它是null。在Java 里,null 是一个关键字,不是一个对象,所以对它调用任何方法都是非法的。但是这对语言设计者来说是一件令人疑惑的选择。为什么要在程序员希望返回一个对象的时候返回一个关键字呢?Scala的Option类型为了让所有东西都是对象的目标更加一致,也为了遵循函数转载 2017-02-17 07:56:51 · 492 阅读 · 0 评论 -
Scala中 zip或者zipWithIndex的用法
问题:你要遍历一个有序集合,同时你又想访问一个循环计数器,但最重要的是你真的不需要手动创建这个计数器。解决方案:使用zipWithIndex或者zip方法来自动地创建一个计数器,假设你有一个有序集合days,那么你可以使用zipWithIndex和counter来打印带有计数器的集合元素:scala>valdays=Array("Sunday","Monday",原创 2017-02-21 16:42:11 · 27441 阅读 · 1 评论 -
scala 中如何 声明 枚举对象
如何声明一个枚举对象object EnumTest extends Enumeration{ type EnumTest = Value val One,Two,Three = Value}12341234这和我们在Java中声明有很大区别,Scala的枚举值有些特殊,它的关键是内部有一个Value类,所谓的枚举值都是通过它产生的。 如果我们不做任何约定的话,枚举值默认从原创 2017-03-02 17:11:48 · 1161 阅读 · 0 评论 -
scala 语法疑惑汇总
1. map(_._2) 等价于 map(t => t._2) //t是个2项以上的元组 , map(_._2, _) 等价与 map(t => t._2, t) //这会返回第二项为首后面项为旧元组的新元组比如:_代表入参,应该是个二元组_1是二元组的第一个元素原创 2017-02-01 00:18:26 · 582 阅读 · 0 评论 -
Scala中的=>符号
Scala中的=>符号可以看做是创建函数实例的语法糖。例如:A => T,A,B => T表示一个函数的输入参数类型是“A”,“A,B”,返回值类型是T。请看下面这个实例:scala> val f: Int => String = myInt => "The value of myInt is: " + myInt.toString()f: Int => String = scala原创 2017-02-01 21:19:19 · 2889 阅读 · 0 评论 -
RDD的最常见的几个API以及scala语法解释
RDD的粗粒度的转换是否有足够的表达能力,来支持多种多样的应用需求呢?先看看RDD究竟有哪些API,然后看它们如何模拟Google经典的MapReduce和图数据处理框架Pregel。 RDD的API 转换 def map[U](f: T => U): RDD[U] 将RDD[T]经过f转换成RDD[U],T和U一一映射,两个RDD元素个数相等 d原创 2017-02-01 21:38:00 · 2880 阅读 · 0 评论 -
Scala 按名称参数调用函数 与 =>的用法
通常情况下,函数的参数是传值参数;即参数的值在它被传递给函数之前被确定。但是,如果我们需要编写一个接收参数不希望马上计算,直到调用函数内的表达式才进行真正的计算的函数。对于这种情况,Scala提供按名称参数调用函数。示例代码如下: 结果: 在代码中,如果定义函数的时候,传入参数不是传入的值,而是传入的参数名称(如代码中使用t: => Long转载 2017-02-02 14:02:44 · 4229 阅读 · 3 评论