抹掉Scala的糖衣(14) -- Update Method】的更多相关文章

欢迎关注我的新博客地址:http://cuipengfei.me/ 在Scala中,名字叫做update的方法是有特殊作用的. 比如: 1 2 3 val scores = new scala.collection.mutable.HashMap[String, Int] scores("Bob") = 100 val bobsScore = scores("Bob") 以上三行代码,我们创建了一个可变的map来存储得分情况,然后我们记录了Bob的得分是100分,最…
我的新博客地址:http://cuipengfei.me/blog/2013/12/23/desugar-scala-4/ Scala中有一个type关键字,用来给类型或者是操作起别名,用起来很是方便. 比如这样: 1 type People = List[Person] 这样就是给List[Person](方括号是Scala的类型参数的写法)声明了一个别名,叫做People. 接下来就可以这样使用它: 1 2 3 def teenagers(people: People): People =…
我们在使用scala的时候经常会用到对象的apply方法和update方法. 虽然我们表面没有察觉,但是实际上两个方法都会遵循相关约定被调用. apply apply方法的约定:用括号传递给变量(对象)一个或多个参数的时候,会把它转换成对apply方法的调用. 我们先看一个例子. class ClassApplyTest{ //类的apply方法调用示例 def apply(param:String): String ={ println("apply method called,the par…
同名同位置默认参数不能overload def bar(i:Int,s:String="a"){} def bar(i:String,s:String="b"){} 编译错误: .... multiple overloaded alternatives of method bar define default arguments.因为scala编译后,按默认的参数位置,生成这样的方法,导致重载冲突. public String bar$default$2() {re…
欢迎关注我的新博客地址:http://cuipengfei.me/ 好久没有写博客了,上一次更新竟然是一月份. 说工作忙都是借口,咋有空看美剧呢. 这半年荒废掉博客说到底就是懒,惯性的懒惰.写博客这事儿,一丢掉就很久捡不起来. 闲话到此为止,下面进入正题. Default parameter value,默认参数值. 这个很容易理解,给参数一个默认值,如果调用者不显式指明参数值,则使用默认值.如果显式指明了,那就用显式指明的值. 举个例子: 1 def hello(name: String =…
java中的单例模式都很熟悉了:简单地说就是一个类只能有一个实例.在scala中创建单例对象非常简单,创建类时使用object关键字替换class即可.因为单例类无法初始化,所以不能向它的主构造函数传递参数. 下面是一个单例的示例: class Marker(val color: String) { println("Creating " + this) override def toString(): String = "marker color " + colo…
原文链接:http://blog.csdn.net/lyrebing/article/details/21696581 Scala 是构建在 JVM 上的静态类型的脚本语言,而脚本语言总是会有些约定来增强灵活性.灵活性可以让掌握了它的人如鱼得水,也会让初学者不知所措.比如说 Scala 为配合 DSL 在方法调用时有这么一条约定: 在明确了方法调用的接收者的情况下,若方法只有一个参数时,调用的时候就可以省略点及括号.如 “0 to 2”,实际完整调用是 “0.to(2)”.但 “println(…
One of the added bonuses of Dynamics CRM is its ability go where you go! With the Spring ’14 Wave Update, you can now download CRM to your tablet with Windows 8.1. If you currently have the CRM for tablets installed, make sure to uninstall it before…
Scala List/sequence FAQ: How do I iterate over a Scala List (or more generally, a sequence) using theforeach method or for loop? There are a number of ways to iterate over a Scala List using theforeach method (which is available to Scala sequences li…
1. The three principles of OOP are encapsulation(封装性), inheritance(继承性) and polymorphism(多态性). example: class Shape{ def area: Double = 0.0 } # supertype # subtypes class Rectangle(val width: Double, val height: Double) extends Shape{ override def ar…