随笔分类 - scala
scala学习,大部分内容来自:https://twitter.github.io/scala_school/zh_cn/
摘要:1. UnboundedMailbox is the default unbounded MailboxType used by Akka Actors ”无界邮箱“ 是akka actors默认使用的邮箱, UnboundedMailbox继承了MailboxType 和ProducesMessa
阅读全文
摘要:recursive value x$5 needs type的原因是使用了一个类型不确定的变量,例如 其中id是个变量,其值还不确定, 就在getName(id)方法上使用.。例子不合理,但是一般这个报错就是代码写错了。
阅读全文
摘要:Option的解释: Represents optional values. Instances of Option are either an instance of scala.Some or the object None. Option[A] (sealed trait) 有两个取值: 1.
阅读全文
摘要:1、作为“通配符”,类似Java中的*。 例如 import scala.math._2、:_*作为一个整体,告诉编译器你希望将某个参数当作参数序列处理! 例如 val s = sum(1 to 5:_*)就是将1 to 5当作参数序列处理。3、指代一个集合中的每个元素。例如我们要在一个Array
阅读全文
摘要:Actor UntypedActor actor的基类,继承并实现onReceive方法就可以得到一个Actor。 Props 配置类,用Props.create可以创建一个按指定配置生成的Actor。 Props的推荐实践,创建Actor时,搞一个static的Props.create方法。可以少
阅读全文
摘要:这是Scala中最有用的部分之一。 匹配值 使用守卫进行匹配 注意我们是怎样将值赋给变量’i’的。 在最后一行指令中的_是一个通配符;它保证了我们可以处理所有的情况。 否则当传进一个不能被匹配的数字的时候,你将获得一个运行时错误。我们以后会继续讨论这个话题的。 参考 Effective Scala
阅读全文
摘要:使用 scala.collection.JavaConverters 与Java集合交互。它有一系列的隐式转换,添加了asJava和asScala的转换方法。使用它们这些方法确保转换是显式的,有助于阅读:
阅读全文
摘要:假设Student类如下: java中获取Student对象链表的方法为: 在scala中获取no = 1 的student的name: 复杂例子: 函数式编程鼓励使用流水线转换将一个不可变的集合塑造为想要的结果。这常常会有非常简明的方案,但也容易迷糊读者——很难领悟作者的意图,或跟踪所有隐含的中间
阅读全文
摘要:优先使用不可变集合。不可变集合适用于大多数情况,让程序易于理解和推断,因为它们是引用透明的( referentially transparent )因此缺省也是线程安全的。 使用可变集合时,明确地引用可变集合的命名空间。不要用使用import scala.collection.mutable._ 然
阅读全文