Scala函数字面量简化写法】的更多相关文章

Scala提供了多种方法来简化函数字面量中多余的部分,比如前面例子中filter方法中使用的函数字面量,完整的写法如下: (x :Int ) => x +1 首先可以省略到参数的类型,Scala可以根据上下文推算出参数的类型,函数定义可以简化为: (x) => x +1 这个函数可以进一步去掉参数的括号,这里的括号不起什么作用: x => x +1 Scala 还可以进一步简化,Scala允许使用”占位符”下划线”_”来替代一个或多个参数,只要这个参数值函数定义中只出现一次,Scala编…
Scala中函数为头等公民,你不仅可以定义一个函数然后调用它,而且你可以写一个未命名的函数字面量,然后可以把它当成一个值传递到其它函数或是赋值给其它变量.下面的例子为一个简单的函数字面量(参考整数字面量,3 为一整数字面量). (x :Int ) => x +1 这是个函数字面量,它的功能为+1. 符好 => 表示这个函数将符号左边的东西(本例为一个整数),转换成符号右边的东西(加1). 函数字面量为一个对象(就像3是个对象),因此如果你愿意的话,可以把这个函数字面量保持在一个变量中.这个变量…
1. 函数字面量 在 Scala 基础(3)—— 基础类型和基础操作 中提到了函数字面量,这里具体解释函数字面量的语法. 下面展示一个具体的函数字面量,它由三部分组成: (x: Int, y: Int) => x + y 圆括号内部的参数列表 右箭头 函数体 2. 一等函数 一等函数可以说是 Scala 中非常重要的特性. 所谓一等函数,就是使用函数字面量,将其作为值进行传递. 函数字面量会被编译成类,并且在运行时实例化成函数值,做一个简单的类比: 函数字面量 -> 类 函数值 -> 对…
今天落叶同学发我一篇文章,我看到一个"新"名词 "函数字面量" (也可叫直接量),当时我就郁闷了,这是什么东西? 我怎么没听说过..回头翻了下权威指南,在第 4.3 章节中可以看到:从某种意义上讲,函数定义表达式可称之为 "函数直接量".看样子有必要重新仔细看看权威指南了,我已经发现好多细节问题都被忽略了. 不过在 函数字面量 定义的问题上,我们发生了一点分歧,他认为匿名函数叫做函数字面量才更准确,而我则认为,函数表达式即函数字面量.于是我各种百…
如果函数的参数在函数体内只出现一次,则可以使用下划线代替: val f1 = (_: Int) + (_: Int) //等价于 val f2 = (x: Int, y: Int) => x + y list.foreach(println(_)) //等价于 list.foreach(e => println(e)) list.filter(_ > 0) //等价于 list.filter(x => x > 0)…
以前对象字面量的写法: 属性的增强写法: ES6中可以写成: 方法的增强写法 ES6中可以写成: ~~~~~ END ~~~~~…
函数是scala的重要组成部分, 本文将探讨scala中函数的应用. scala作为支持函数式编程的语言, scala可以将函数作为对象即所谓"函数是一等公民". 函数定义 scala源文件中可以定义两类函数: 类方法: 类声明时定义, 由类实例进行调用 局部函数: 在函数内部定义, 作用域只限于定义它的函数内部 这里只关注函数定义相关内容, 关于类的有关内容请参考面向对象的相关内容. scala使用def关键字定义函数: def test() { println("Hell…
简要 问题1:不能使用typeof判断一个null对象的数据类型 问题2:用双等号判断两个一样的变量,可能返回false 问题3:对于非十进制,如果超出了数值范围,则会报错 问题4:JS浮点数并不精确,0.1+0.2 != 0.3 问题5:使用反斜杠定义的字符串并不换行,使用反引号才可以 问题6:字符串字面量对象都是临时对象,无法保持记忆 问题7:将字符转义防止页面注入攻击 问题8:使用模板标签过滤敏感字词 问题9:格式相同,但不是同一个正则对象 问题10:非法标识符也可以用用对象属性,但只能被…
参考原文:http://www.cnblogs.com/yxf2011/archive/2012/04/01/2428225.html http://www.cnblogs.com/mushishi/p/5811743.html 在Javascript中,创建对象的方式包括两种:对象字面量和使用new 表达式,对象字面量是一种灵活方便的是些方式,例如: var o1 = { p:'I'm in Object literal', alertP: function() { alert(this.p)…
JSON字符串和Javascript对象字面量 JSON是基于Javascript语法的一个子集而创建的,特别是对象和数组字面量语法. 正是由于JSON的这种特殊来历,导致很多Javascript程序员往往会混淆Javascript对象字面量和JSON. 1 JSON是纯文本,不是Javascript代码 JSON是作为XML的替代品而出现的,它本身是一种跨平台的数据表示标准,是纯文本字符串,不局限于任何编程语言. Javascript代码则必须需符合其语言规范,不能在其他语言中直接使用. 2…