scala apply方法和update方法

示例代码1
class TestApplyClass {
def apply(param: String): String = {
println("apply method called, parameter is: " + param)
return "Hello World!"
}
}
val myObject = new TestApplyClass()
println(myObject("param1"))
输出为:
apply method called, parameter is: param1
Hello World!
示例代码2
object TestApplySingleObject {
def apply(param1: String, param2: String): String = {
println("apply method called")
return param1 + " and " + param2
}
}
// 单例对象不需要 new
val group = TestApplySingleObject("zhangfei", "liubei")
println(group)
输出:
apply method called
zhangfei and liubei
可以看出,在执行TestApplySingleObject("zhangfei", "liubei")时调用了apply方法,并且把"zhangfei and liubei"作为返回值,赋值给group变量。

输出:
apply method in object is called
Greeting menthod in class is called.
apply method in class is called!


scala apply方法和update方法的更多相关文章
- 彻底理解了call()方法,apply()方法和bind()方法
javascript中的每一个作用域中都有一个this对象,它代表的是调用函数的对象.在全局作用域中,this代表的是全局对象(在web浏览器中指的是window).如果包含this的函数是一个对象的 ...
- 字典fromkeys方法和update方法
#Author : Kelvin #Date : 2019/1/17 15:27 #字典的update方法,是向调用者字典中添加另外一个字典 dict1 = {"name":&qu ...
- JavaScript的apply()方法和call()方法
1 <script type="text/javascript"> 2 /*定义一个人类*/ 3 function Person(name,age) 4 { 5 thi ...
- JavaScript中的apply()方法和call()方法使用介绍
1.每个函数都包含两个非继承而来的方法:apply()和call(). 2.他们的用途相同,都是在特定的作用域中调用函数. 3.接收参数方面不同,apply()接收两个参数,一个是函数运行的作用域(t ...
- apply方法和call方法。函数属性与方法。
每个函数都有length属性哥prototype属性. length属性表示的是函数接入参数的个数 在es引用类型语言中,prototype是保存它们所有实例方法的真正所在.换句话来说,类似于toSt ...
- AngularJs $scope 里面的$apply 方法和$watch方法
Angular $scope 里面的$apply 方法 Scope提供$apply方法传播Model变化 <!DOCTYPE html> <html> <head> ...
- apply方法和call方法的详解2
1.apply和call的区别在哪里 2.什么情况下用apply,什么情况下用call 3.apply的其他巧妙用法(一般在什么情况下可以使用apply) 我首先从网上查到关于apply和call的定 ...
- apply()方法和call()方法
obj.func.call(obj1) //是将obj1看做obj,调用func方法,将第一个参数看做函数调用的对象,可以看做,将obj的方法给obj1使用 ECMAScript规范给所有 ...
- Hibernate中evict方法和clear方法说明
Hibernate中evict方法和clear方法说明 先创建一个对象,然后调用session.save方法,然后调用evict方法把该对象清除出缓存,最后提交事务.结果报错: Exception i ...
- 序列化和持久化 merge方法和saveOrUpdate方法
merge方法和saveOrUpdate方法的区别 merge方法是把我们提供的对象转变为托管状态的对象:而saveOrUpdate则是把我们提供的对象变成一个持久化对象:说的通俗一点就是:saveO ...
随机推荐
- vue 鼠标拖拽
<template> <div class="home"> <div id="box" v-drag></div> ...
- C++实现线性表-顺序表的合并操作代码
#include<iostream>#include<cstdlib>//C++动态分配存储空间using namespace std;#define OK 1#define ...
- laravel 内置auth()登录
auth()命令 auth()->attempt() 登录验证 auth()->check 判断是否登录,有没有session缓存 auth()->log ...
- 几个一看就会的实用JavaScript优雅小技巧
️ 前言 这次我就给大家分享一些一看就会的实用JavaScript优雅小技巧. 「难度:」 「推荐阅读时长:5min」 正片 减少if...else面条代码 一旦当我们写到超过两个if...else的 ...
- windows环境go安装和goland激活
1. go环境安装 1.1. go安装包下载 https://golang.google.cn/dl/ https://studygolang.com/dl 1.2. 安装go环境 1.2.1. 点击 ...
- echars简单使用
引入js <script type="text/javascript" src="js/echarts.js" ></script> 记 ...
- Java根据经纬度计算两点之间的距离
public final class DistanceUtils { /** * 地球半径,单位 km */ private static final double EARTH_RADIUS = 63 ...
- Java的学前准备(2021.7.29)
前言:Emm...已经是编程学习的Day2了(好像Day1不知道哪去了,或许是在考验我的记忆力呢 ).但所幸我依然可继续学习,内容如下. 一.J课程 电脑快捷键 Ctrl+ shift / C/ V/ ...
- linux查看进程信息
top 实时查看进程信息,展示进程id,使用内存,占用cpu等信息,可以查看内容占用最多.cpu使用最多的进程,然后再根据进程id查看进程的详细信息.实时更新 ps 瞬时查看进程情况,ps -ef | ...
- Latex Algorithm 语法错误导致无法编译
遇到了几种情况: 1. for 循环没加{} 2. $\textbf{T_i}$, 想要加粗T,但是把i也扩进去了,latex就不懂了,于是一直recompile不出来说超时什么什么的,把i放到外面就 ...