scala
文章平均质量分 74
残阙的歌
puring coding,puring thinking!
展开
-
scala flatMap 简介
scala flatMap的理解一、官方例子个人解析object FlatMapTest extends App{ //官方API用法1.对于一阶集合flatMap返回与主对象相同的类型2.对于map,flatMap能扁平化一层的map,把map的每个键值对都转为tuple形式原创 2016-07-22 16:01:51 · 5827 阅读 · 0 评论 -
scala map/list/array/的常用内置遍历操作总结
scala map/list/array/的常用内置遍历操作总结。Scala 是面向函数的,所以在集合函数里,它很轻易地提供了非常丰富遍历操作,数组变换操作。这对于我们数据挖掘,爬虫,文本处理等都非常有帮助。有了这些内置的遍历变换操作,我们再也不用像java那样写一个笨笨的for循环来迭代,然后还要定义一些规范的函数来迎合需求。而scala不同,随时随地就可以写一个你自己想要的函数,而不需要严格地定义它,规范它。(注意,scala里一切事物皆函数,一切函数皆对象)下面将提供一些集合内置遍历方法用法,熟练原创 2016-07-22 17:50:39 · 12397 阅读 · 0 评论 -
scala 泛型之初解,定界,类型约束,逆变与协变
scala 的泛型应用如下:一、初解当构建一个类或者函数时,如果我们不知道(或者说不确定)传入的参数的具体数据类型,这时候可以泛型,例子如下:1-1例子:object test0 extends App{ val str = "123" val intv =123 val strTest = new Test[String](str) val intTest原创 2016-07-27 10:58:02 · 2653 阅读 · 0 评论 -
Mutable and Immutable Collections的区别
在写scala的时候,常常不太明白Mutable and Immutable Collections的用法和区别。=这个操作符,如果操作的对象是可变的,它会自动调用对象的update方法(具体对象看具体操作),相当于更新或者追加的操作。如果对象是不可变的,它就会返回一个新的对象。问题扩展:为什么要花费精力弄明白可变与不可变对象的区别?(这个涉及到多线程安全,循环遍历等,具体自己上网查)scala 的设计者真是用心良苦啊!原创 2016-07-21 16:54:07 · 1598 阅读 · 0 评论 -
Scala 浅谈scala闭包与java回调函数
闭包是指可以包含自由(未绑定到特定对象)变量的代码块;这些变量不是在这个代码块内或者任何全局上下文中定义的,而是在定义代码块的环境中定义(局部变量)。“闭包” 一词来源于以下两者的结合:要执行的代码块(由于自由变量被包含在代码块中,这些自由变量以及它们引用的对象没有被释放)和为自由变量提供绑定的计算环境(作用域)。在PHP、Scala、Scheme、Common Lisp、Smalltalk、原创 2016-08-03 15:39:38 · 1875 阅读 · 0 评论 -
Scala Actot(三):设计原则
这部分内容待续更新原创 2016-07-29 18:09:19 · 566 阅读 · 0 评论 -
Scala Actot(二):共享--react,loop,loopwhile实现共享以及while的共享失效性
一、前言考虑一个发送消息给另一个actor的actor。如果每个actor都在单独的线程中运行,我们很容易实现控制流转。作为消息发送方的actor将消息发到邮箱中,然后它的线程继续执行。而每当有条目被放入邮箱时,作为消息接收方的actor的线程就会被唤醒。在有些程序所包含的actor是如此之多,以至于要为每个actor创建独立的线程开销很大。所以实际需求中,我们肯定不能这样做,我们必须使得原创 2016-07-29 18:00:38 · 698 阅读 · 0 评论 -
Scala Actor(一):简单入门
(ps:虽然scala.actors最近被抛弃,但可作为新手入门理解scala的并发编程原理)原博文地址为:http://blog.csdn.net/yyywyr/article/details/50465411原文如下:Java中的并发编程主要通过线程实现的,通过共享资源的机制实现并发,但会面临着死锁的问题。在Scala中,是通过消息传递来实现并发的,而Actor正是实现消息转载 2016-07-29 15:42:24 · 1145 阅读 · 0 评论 -
scala 高级类型
本文参考 《快学scala》第18章,这里列出来备忘:内容为1.单例类型可用于方法串接和带对象参数的方法。 2.类型投影对所有外部类型的对象都包含了其内部类的实例。 3.类型别名给类型指定一个短小的名称。 4.结构类型等效于“鸭子类型”。 5.存在类型为泛型类型的通配参数提供了统一形式。 6.使用自身类型来表明某特质对混入它的类或对象的类型要求。 7.“蛋糕模式”用原创 2016-07-27 18:32:57 · 543 阅读 · 0 评论 -
Scala Functions vs Methods(scala中的函数和方法)
Scala中既有函数也有方法,大多数情况下我们都可以不去理会他们之间的区别。但是有时候我们必须要了解他们之间的不同。 Scala中的方法跟Java的方法一样,方法是组成类的一部分。方法有名字、类型签名,有时方法上还有注解,以及方法的功能实现代码(字节码)。具体的差异,总结为如下几点:1、方法不能作为单独的表达式而存在(参数为空的方法除外),而函数可以。如: 在如原创 2016-07-27 16:59:19 · 427 阅读 · 0 评论 -
scala List集合的用法
一、前言:人们常说,Scala是一个难掌握的语言,一是其面向函数和面向对象结合的原因,二是其丰富的语法和内置函数。对于Conllection 这一章的内容,更多的是利用内置函数灵活地运用,避免自己重复造轮子(要求性能高除外)对于集合,通常来说有以下几个常用操作是必须掌握的:1.增删改查单个元素2.单个集合的各种遍历方式3.单个集合分拆组合与翻转原创 2016-07-22 17:23:46 · 48306 阅读 · 3 评论 -
类型 Option
类型 Option前几章,我们讨论了许多相当先进的技术,尤其是模式匹配和提取器。 是时候来看一看 Scala 另一个基本特性了: Option 类型。可能你已经见过它在 Map API 中的使用;在实现自己的提取器时,我们也用过它, 然而,它还需要更多的解释。 你可能会想知道它到底解决什么问题,为什么用它来处理缺失值要比其他方法好, 而且可能你还不知道该怎么在你的代码中使用它。 这一章的目原创 2016-10-26 15:21:30 · 783 阅读 · 0 评论