首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏牛肉圆粉不加葱

    (2) - apply, update 语法糖

    在 Scala 中,如果我们要频繁调用某个 class 或 object 的方法,我们可以通过定义 apply 方法来避免每次写出该函数的调用,而使用一种更加简洁的方式,来看下面的例子: 不使用 apply 当然,apply 方法支持任意类型和任意个参数。 另一种 apply 常用的使用场景是用 object 来创建其伴生类的实例。 apply 方法在我们平时写代码时也经常碰到,比如: val l = List(1,2,3) 中的 List(1,2,3) 调用就是调用的 object List 的 apply 方法 ? println( a ) | } | } defined class A scala> val a = new A a: A = A@27e47833 scala> a() = 2 2 ---- **传送门: **Scala 在简书目录 ---- 欢

    44120发布于 2018-08-24
  • 来自专栏Hank’s Blog

    4-2 R语言函数 apply

    #apply函数,沿着数组的某一维度处理数据 #例如将函数用于矩阵的行或列 #与for/while循环的效率相似,但只用一句话可以完成 #apply(参数):apply(数组,维度,函数/函数名) x的列求平均 [1] 2.5 6.5 10.5 14.5 > apply(x,2,sum) #沿着x的第二维度求和 [1] 10 26 42 58 > apply(x,1,sum) [1] 28 3*4分别对应行*列*组(相对应的维度即为1*2*3 #apply(x,c(1,2),mean)中1,2对应的维度为行*列,不需要考虑组,所以对每组相同位置的所有元素相加后求平均,因此输出的结果为2行3 列的矩阵 #同理,apply(x,c(1,3),mean)中1,3对应的维度为行*组,所以分别对每组中的行求平均,因此输出的结果为2行4列的矩阵(x中有4个组,每组中有2行) #同理,(2,3)就代表列 ,3] [1,] 0.0279858 0.9007448 0.1251860 [2,] 0.5111250 -0.4223850 -0.6083399 > apply(x,c(1,2),mean)

    63710发布于 2020-09-16
  • 来自专栏CNCF

    Kubernetes 1.18特性:Server-side Apply Beta 2

    作者:Antoine Pelisse(谷歌) 服务器端应用(Server-side Apply)是什么? 服务器端应用是将“kubectl apply”迁移到apiserver的重要工作。 该项目由Apply工作组于2018年启动。 使用kubectl以声明方式应用资源有以下挑战: 需要使用kubectl的go代码,否则他们就必须在shell使用kubectl。 最常用的方法是通过kubectl:kubectl apply --server-side。这可能会显示与其他参与者的冲突,包括客户端应用。 Apply工作小组申请可以在slack #wg-apply上找到,通过邮件列表,以及我们每隔一个星期二在Zoom上9.30PT见面。我们有许多令人兴奋的特性要构建,并且可以使用各种帮助。 -2/】阅读英文原文。

    4.2K20发布于 2020-04-07
  • 来自专栏python3

    python apply()函数

    >>> help(apply) Help on built-in function apply in module __builtin__: apply(...) 2》函数只带元组的参数 def say(a): print a say('hello python!') apply(say,("hello python!" <type 'dict'> 1 2 {'a': 'hello', 'b': 'python!'} 2 hello python! print kw,type(kw) apply(say,args,kw) haha(1,2,a='hello',b='python!') 结果: (1, 2) <type 'tuple'> {'a': 'hello', 'b': 'python!'} <type 'dict'> 1 2 hello python!

    1.9K10发布于 2020-01-06
  • 来自专栏web前端-

    call和apply

    首先个人感觉call和apply还是挺神奇的,简简单单就改变了this的作用域,下面我们来共同学习一下 1.call和apply的语法(改变this的作用域,有点像冒充的感觉,例子如下) function.apply } var people1=new People("欧阳修","蛤蟆功"); var person=new Object();//重新创建了一个对象 People.apply 对象中的属性和方法 people1.paly(); person.paly() </script> //弹出结果: function.call(thisObj[, arg1[, arg2[ People.call(person ,"啄木鸟","捉虫子"); people1.paly(); person.paly() </script> 代码基本没变,就是把apply 替换成了call,作用相同,两者最大区别就是传递参数的方式不同, 通俗说 call传递参数是直接用双引号,然后一个接着一个传递 apply传递参数是通过一个数组的形式传递

    1.1K30发布于 2018-09-13
  • 来自专栏韩曙亮的移动开发专栏

    【Kotlin】apply 内联扩展函数 ( apply 函数原型 | apply 函数示例 | Kotlin 调用 Java API )

    内联扩展函数 apply II . Kotlin 调用 Java API III . apply 内联扩展函数示例 ( 调用 Java API 处理图像 ) I . 内联扩展函数 apply ---- 1 . apply 函数原型 : 泛型 T 类型对象 , 调用 apply 方法 , 后面定义了一个闭包代码块 ; 调用 apply 方法的对象类型是泛型 , 说明任何对象都可以调用该方法 { callsInPlace(block, InvocationKind.EXACTLY_ONCE) } block() return this } 2 . apply 函数作用 : 扩展了调用 apply 函数的泛型类型 T 的对象的操作方法 , 等同于为泛型 T 对象定义了一个新的方法 ; 3 . apply 函数调用对象 : 所有的对象都可以调用 apply 函数 函数作用 : 作用 : 扩展了调用 apply 函数的泛型类型 T 的对象的操作方法 , 等同于为泛型 T 对象定义了一个新的方法 特点 : 在 apply

    3.1K20编辑于 2023-03-27
  • 来自专栏生信补给站

    R|apply,tapply

    apply族功能强大,实用,可以代替很多循环语句,先简单介绍apply和tapply函数。 一、apply()函数 apply函数可将一个任意函数“应用”到矩阵、数组、数据框的任何维度上。 在矩阵或数据框中, MARGIN=1表示行, MARGIN=2表示列。 求均值 apply(mydata, 2, mean)[1] 0.1454680 -0.1443698 0.1257119 0.4596365 -0.4421267apply(mydata, 2, 求数学和英语的平均分 apply(roster[,c(2,3)],2,mean)Math English 500.9 21.8 2)当需要分组计算时候,使用tapply函数 tapply(roster ,tapply可以省去很多循环的分析,其他apply族函数,待续。。。

    90480发布于 2020-08-06
  • 来自专栏Kirin博客

    解决NO migrations to apply

    如果你执行迁移命令的时候出现了这个错误 最简单最暴力的做法就是删库跑路,当然你如果不想删库跑路的话 可以尝试以下做法 创建表之后,遇到models模型变动,故当时做了删除应用文件夹下migrations文件,删除后重建,但重建后执行模型合并操作结果为No Changes,无法创建数据表 执行python3 manage.py makemigrations --empty 你的应用名; 执行python3 manage.py makemigrations; 执行python3 manage.py migrat

    2.4K20发布于 2020-07-09
  • 来自专栏Android Note

    Kotlin —  apply vs with

    apply和with的不同 ① apply接收一个实例作为接收者,同时要求一个实例作为参数传递。 ② apply返回接收者,with返回其块内最后一个表达式的结果。 通常情况下,当你需要对一个对象某些事情并返回时,可以使用apply。而当你需要在一个对象上执行一些操作并返回一些可以使用的其他对象时,你可以使用with。 apply示例代码: fun getUser():User{ return User().apply{ name="andorid coder" age=25 } } with

    66830发布于 2018-07-02
  • 来自专栏coding个人笔记

    call、apply、bind

    今天分享自己对于call、apply、bind新的认识,并手写一个自己的call、apply、bind。 三个方法的语法大体一样: fnction fn() {} fn.call(thisArg, arg1, arg2, ...) fn.apply(thisArg, [arg1,arg2,...]) fn.bind (thisArg, arg1, arg2, ...) call和bind的参数一样,apply的参数是一个数组(a开头,Array),call和apply返回的是fn执行的结果,bind返回的是fn的拷贝并指定 比如fn1方法和fn2方法,fn2需要用到fn1的方法,这时候直接用fn1的方法而不是自己声明一个方法。bind方法比较不一样,bind返回的是一个函数,所以还可以用来做闭包等。 比如求一个数组的最大最小值: var arr = [5, 6, 2, 8, 1]; console.log(Math.max.apply(Math, arr));//8 console.log(Math.min.apply

    1.2K20发布于 2020-04-23
  • 来自专栏Czy‘s Blog

    apply()、call()、bind()

    apply()、call()、bind() 每个Function对象都存在apply()、call()、bind()方法,其作用都是可以在特定的作用域中调用函数,等于设置函数体内this对象的值,以扩充函数赖以运行的作用域 使用 apply()、call()、bind()都能改变函数对象的this指向 window.name = "A"; //挂载到window对象的name document.name = "B"; // sayName: function(){ console.log(this.name); } } rollCall.sayName(); //Teacher // apply rollCall.sayName.apply(); //A //不传参默认绑定window rollCall.sayName.apply(window); //A //绑定window对象 rollCall.sayName.apply (document); //B //绑定document对象 rollCall.sayName.apply(s); //C //绑定自定义对象 // call rollCall.sayName.call

    1K20发布于 2020-08-27
  • 来自专栏邱道长说

    scala apply解析

    根据维基百科的解释:apply是一个将函数应用于参数的函数。听上去有点绕口。 scala设计的apply方法也是桥接OOP和FP编程。 通用的将,任意的一个函数,都是一个将其应用到参数的过程。 所以我们可以如下写 f.apply(3) image.png 为何调用伴生对象的时候直接调用的是apply方法? 你是否有这个疑问。 回头看apply 严格来讲所有函数都应该遵循apply的方式,我们前面定义的f函数 f.apply(3) 这样写起来很累,所以scala的编译器帮助我们简化了这个过程,只需要我们写 f(3) 它就等价于上面的写法 ",23) 只是它允许我们省略掉apply,这是编译器给与我们的语法糖而已。 至此我相信大家理解了这个apply的原理和逻辑了。 在伴生对象当中定义工厂方法的时候只有命名为apply的时候才能省略,其它方法名都是不可省略名称的。

    83550发布于 2020-11-25
  • 来自专栏前端重点笔记

    call,apply,bind详解

    示例: var arr=[1,10,5,8,3]; console.log(Math.max.call(null,arr[0],arr[1],arr[2],arr[3],arr[4])); //10 采纳以参数列表的形式传入 ,而apply以参数数组的形式传入。 示例: var arr=[1,10,5,8,12]; var max=Math.max.bind(null,arr[0],arr[1],arr[2],arr[3]) console.log(max(arr new fNOP(); return fBound; }; var arr=[1,11,5,8,12]; var max=Math.max.bind(null,arr[0],arr[1],arr[2] 三者都可以传参,但是apply是数组,而call是参数列表,且apply和call是一次性传入参数,而bind可以分为多次传入。

    1.1K10发布于 2019-11-20
  • 来自专栏lhyt前端之路

    js的this、call、apply、bind、继承、原型链0.前言1.this2.call、apply、bind3.从call到继承

    ,this指向就那么几种: new 关键字 指向new 创建的对象 function F() { this.name = 1 } var f = new F() 复制代码 call、apply = Array.prototype.slice.call(arguments)//call和apply我们都可以实现,这里就不再重复 return f.apply(ctx,args1.concat( args2))//将预先填入的参数和执行时的参数合并 } } 复制代码 此外,需要注意的,一个函数被bind后,以后无论怎么用call、apply、bind,this指向都不会变,都是第一次bind的上下文 = 2 } var f = new F() function G(){} G.prototype = f var g = new G() var h = new G() g.a //[1,2,3,4] g.b //2 //对于引用类型,如果我们修改g.a(不是用=赋值,用=不会操作到原型链) g.a.push(123) g.a//[1,2,3,4,123] //而且其他的实例也会变化 h.a //[

    99010发布于 2018-10-31
  • 来自专栏小蔚记录

    js call 和 apply

    call 和 apply二者的作用完全一样,只是接受参数的方式不太一样。 方法定义   apply   Function.apply(obj,args)方法能接收两个参数:     obj:这个对象将代替Function类里this对象   args:这个是数组或类数组,apply ,param,…paramN) 所以同样也可以通过apply来装换一下这个数组,即: var arr1=new Array("1","2","3"); var arr2=new Array("4"," 5","6"); Array.prototype.push.apply(arr1,arr2); console.log(arr1);//["1", "2", "3", "4", "5", "6"] 也可以这样理解,arr1调用了push方法,参数是通过apply将数组装换为参数列表的集合.

    1.7K20发布于 2019-09-11
  • 来自专栏全栈程序员必看

    pandas apply() 函数用法

    apply() 的话: df['NameLength'] = df['Name'].apply(len) apply 函数接收带有参数的函数 根据 pandas 帮助文档 pandas.Series.apply 假设我们对不同的民族可以给不同的加分,定义 add_extra2() 函数: def add_extra2(nationaltiy, **kwargs): return kwargs[nationaltiy ] df['Extra'] = df.Nationality.apply(add_extra2, 汉=0, 回=10, 藏=5) 运行结果为: Name Nationality Score 比如下面的示例: import pandas as pd import numpy as np matrix = [ [1,2,3], [4,5,6], [7,8,9] ] 比如下面的示例将 x 列进行平方运算: df.apply(lambda x : np.square(x) if x.name=='x' else x) x y z a 1 2 3 b

    1.5K40编辑于 2022-06-25
  • 来自专栏文渊之博

    小议如何使用APPLY

    一般又两种形式写法: 第一种格式就是CROSS APPLY。这种格式可以一方面从表或者结果集中的每一行数据中取出几列数值,另一方面将取出的数据作为输入条件得到表的函数值或者表达式。 使用CROSS APPLY 这个操作符将执行一个表值函数为每行关联在 在结果集中的数据,我们用下面的小例子来展示一下效果: image.png 假如你回顾代码,能发现,我使用CROSS APPLY来链接了 使用OUTER APPLY 与CROSS APPLY功能相似。唯一的不同是CROSS APPLY即使没有匹配到任何行在函数中,已然能够链接表中的数据并在本来应该有函数表现的列上填充null。 如图: image.png 使用表值表达式 到目前为止我们仅仅展示了APPLY 在一个结果集和一个表值函数之间的例子。当然它也是能与一个表值表达式一起应用的。 同样的,我们也能对表值表达式使用 OUTER APPLY 来实现外链接。这个例子我就不再列举了,有兴趣的可以自己尝试一下。

    97850发布于 2018-01-30
  • 来自专栏编程微刊

    什么是apply()方法?

    在 JavaScript 中,apply() 方法是函数对象的一个内置方法,用于在指定的上下文(对象)中调用函数,并传递一个数组或类似数组的参数作为函数的参数。 apply() 方法的语法如下: function.apply(thisArg, [argsArray]) thisArg:要在函数执行期间绑定到函数的对象,即函数的上下文。 = { name: 'John' }; greet.apply(person); // 输出:Hello, John 通过使用 apply() 方法,将 greet() 函数绑定到 person 对象,并在 apply() 方法中传递了 person 作为上下文。 这样调用 greet.apply(person) 时,函数将在 person 对象的上下文中执行,并正确地打印出问候语。

    80260编辑于 2023-11-13
  • 来自专栏前端迷

    bind、call、apply 区别

    call 和 apply 都是为了解决改变 this 的指向。作用都是相同的,只是传参的方式不同。 除了第一个参数外,call 可以接收一个参数列表,apply 只接受一个参数数组。 console.log(name) console.log(age) console.log(this.value) } getValue.call(a, 'yck', '24') getValue.apply 所以需要判断 if (this instanceof F) { return new _this(...args, ...arguments) } return _this.apply ', '24') var result = context.fn(...args) // 删除 fn delete context.fn return result } 如何实现一个 apply

    75920发布于 2019-12-05
  • 来自专栏程序随笔

    sql apply查询应用

    Employees E JOIN Orders O ON E.EmployeeID = O.EmployeeID) A WHERE A.ROW <= 2 E CROSS APPLY ( SELECT TOP (2) * FROM Orders O WHERE O.EmployeeID 用apply...聚合函数直接替换。 通过实践调试,最后发现apply可以解决这个问题,但是网上对这个apply也没过多的讲述,在这里也只是做个总结。 最后的建议是,如果在大数据量下有分页查询或是连接大表又需要聚合查询,可以尝试apply得写法。可以用except来验证两者的输出。

    35110编辑于 2023-10-19
领券