摘抄两段话:

在明确了方法调用的接收者的情况下,若方法只有一个参数时,调用的时候就可以省略点及括号。
如 “ to ”,实际完整调用是 “.to()”。但 “println()” 不能写成 “println “”,因为未写出方法调用的接收者 Console,所以可以写成 “Console println ”
用括号传递给变量(对象)一个或多个参数时,Scala 会把它转换成对 apply 方法的调用;
与此相似的,当对带有括号并包括一到若干参数的进行赋值时,
编译器将使用对象的 update 方法对括号里的参数和等号右边的对象执行调用。
val a  = new Array(,  ,)
a()
实际上调用的是a.apply() 这也能解释为什么 Scala 数组取值不用中括号括下标的方式,因为它也是一次方法调用

举个例子:

class SomeClass {
def apply(key: String): String = {
println("apply method called, key is: " + key)
"Hello World!"
}
} val anyObject = new SomeClass
println(anyObject("key1"))

输出为:

apply method called, key is: key1
Hello World!

update方法:

greetStrings() = "Hello"  实际为:

greetStrings.update(0, "Hello")

scala学习:apply方法的更多相关文章

  1. scala的apply方法

    package com.test.scala.test /** * apply 方法 */ object ApplyTest { def main(args: Array[String]): Unit ...

  2. scala 学习笔记(04) OOP(上)主从构造器/私有属性/伴生对象(单例静态类)/apply方法/嵌套类

    一.主从构造器 java中构造函数没有主.从之分,只有构造器重载,但在scala中,每个类都有一个主构造器,在定义class时,如果啥也没写,默认有一个xxx()的主构造器 class Person ...

  3. Scala学习笔记(四):apply方法说明

    当scala中类或者对象有一个主要用途的时候,apply方法就是一个很好地语法糖.请看下面一个简单的例子: class Foo(foo: String) {} object Foo { def app ...

  4. scala学习笔记4(apply方法)

    class ApplyTest{ def apply() = "This apply is in class" def test{ println("test" ...

  5. (转)scala apply方法 笔记

    在akka源码中有这样一个Cluster类. 使用方法是这样的:val cluster = Cluster(context.system); 作为scala菜鸟的我,并没有找到Cluster(syst ...

  6. JavaScript学习笔记(1))——————call,apply方法

    学习前端也有一段时间了,但是效果甚微.利用时间不够充分,虽然是利用工作之余来学习.但是这不能成为我的借口. 今天学习了(其实看了很多遍)call apply方法. function abc(a,b){ ...

  7. Scala的Class、Object和Apply()方法

    Scala中如果一个Class和一个Object同名,则称Class是Object的伴生类.Scala没有Java的Static修饰符,Object下的成员和方法都是静态的,类似于Java里面加了St ...

  8. 深入学习JavaScript: apply 方法 详解

    我在一开始看到javascript的函数apply和call时,非常的模糊,看也看不懂,最近在网上看到一些文章对apply方法和call的一些示例,总算是看的有点眉目了,在这里我做如下笔记,希望和大家 ...

  9. Scala语言学习笔记——方法、函数及异常

    1.Scala 方法及函数区别 ① Scala 有方法与函数,二者在语义上的区别很小.Scala 方法是类的一部分,而函数是一个对象可以赋值给一个变量.换句话来说在类中定义的函数即是方法 ② Scal ...

随机推荐

  1. UVA 11235 频繁出现的数值 RMQ

    题目链接: http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...

  2. 2016HUAS_ACM暑假集训2B - The Suspects(感染者)

    并查集初步应用,还不是很熟练.并查集两个主要函数:Union和Find.Union通常把两条不连通的支路使其连通:Find用来查找根节点,必要的要进行路径压缩. 大致题意:0号学生是默认的感染者,在M ...

  3. 2016HUAS_ACM暑假集训2L - Points on Cycle(圆上的点)

    一个简单的几何题,自己在纸上列出方程解出结果的表达式,再用程序表达出来就行了. 不过老司机(老司机的woodcoding)说用旋转向量法比较简单,有时间要去看一看. 大致题意:一个圆心在原点的圆,半径 ...

  4. Apache Shiro简介

    作者:var dump链接:https://zhuanlan.zhihu.com/p/23300328最近要做一个基于Java C/S架构的项目,主要涉及权限管理这方面的东西.了解到Apache Sh ...

  5. powerdsigner java对象模型将中文name生成在注释中

    [\n]\ @Title [%Name%\n\n]\ 遗憾的是保存这个配置会出错,每次软件启动后要重新配置. 生成出来的字段样式: /** * 评论时间 * * @pdOid bd8ec6fd-5cb ...

  6. Document types require more than xhtml1.0

    这个东西只会在比较低版本的浏览器中会出现,比如IE7及以下会出这个错误. 错误的根源是html页面没有考虑浏览器兼容性问题. 在页面头部加入下面的内容即可解决标题中的问题 <!DOCTYPE h ...

  7. JS操作iframe

    1. 获得iframe的window对象 存在跨域访问限制. chrome:iframeElement. contentWindow firefox: iframeElement.contentWin ...

  8. SilverlightOA源代码(可用于企业级Silverlight项目的二次开发,长年有效)

    Silverlight OA系统简介 系统功能简介 l 程序界面介绍: 左侧为主菜单,主菜单可以展开和收起,主菜单下面的所有模块都可以在数据库中扩展增加,模块的权限和用户角色挂钩,可以在数据库中创建多 ...

  9. [转载] 【Shiro】Apache Shiro架构之实际运用(整合到Spring中)

    写在前面:前面陆陆续续对Shiro的使用做了一些总结,如题,这篇博文主要是总结一下如何将Shiro运用到实际项目中,也就是将Shiro整到Spring中进行开发.后来想想既然要整,就索性把Spring ...

  10. pandas入门

    [原]十分钟搞定pandas   本文是对pandas官方网站上<10 Minutes to pandas>的一个简单的翻译,原文在这里.这篇文章是对pandas的一个简单的介绍,详细的介 ...