Scala中的函数
Scala中的函数
提纲
1、Scala中的函数简介
2、Scala中的函数的各种写法
1、Scala中的函数简介
===================
Scala是函数式编程和面向对象式编程的混合泛型语言,函数在Scala中犹如一个对象一样,可以赋给变量。
函数,又称函数字面量(function literal),也称值函数(function values),之所以这样称呼,是因为函数可以赋值给变量。
2、Scala中的函数的各种写法
========================
2.1 写法一
/*
函数字面量 function literal
=>左侧的表示输入,右侧表示转换操作
*/
scala> val increase=(x:Int)=>x+1
increase: Int => Int = <function1>
scala> println(increase(10))
11
2.2 写法二
scala> def increase(x : Int) = x + 1
2.3 多条语句时写法三
val increase = (x: Int) => {
println("xue")
println("xi")
x = x + 1
}
2.4 写法四
println(Array(1, 2, 3, 4).map((x : Int) => x + 1).mkString(","))
2.5 写法五
//花括弧写法
Array(1, 2, 3, 4).map{(x : Int) => x + 1}.mkString(",")
2.6 写法六
//省略.的写法
Array(1, 2, 3, 4) map{(x : Int) => x + 1} mkString(",")
2.7 写法七
//参数类型推断写法
Array(1, 2, 3, 4) map{(x) => x + 1} mkString(",")
2.8 写法八
//函数只有一个参数的话,可以省略()
Array(1, 2, 3, 4) map{x => x + 1} mkString(",")
2.9 写法九
//如果参数右边只出现一次,则可以进一步简化
Array(1, 2, 3, 4) map {_ + 1} mkString(",")
2.10 写法十
//val fun0 = 1 + _ 该方式不合法,因为无法进行类型推断
//值函数简化方式1
val fun1 = 1 + (_ : Double)
2.11 写法十一
//值函数简化方式2
val fun2 : (Double) => Double = 1 + _
Scala中的函数的更多相关文章
- 【Scala篇】--Scala中的函数
一.前述 Scala中的函数还是比较重要的,所以本文章把Scala中可能用到的函数列举如下,并做详细说明. 二.具体函数 1.Scala函数的定义 def fun (a: Int , b: Int ) ...
- Scala中的函数表达式
最近看Spark的东西,由于之前没有接触过lambda函数表达式,所以搜了点资料,特地纪录在此 Scala中的Lambda表达式 在函数式编程中,函数是基本的构造块.Scala融合了java中的面向对 ...
- 大数据学习之Scala中main函数的分析以及基本规则(2)
一.main函数的分析 首先来看我们在上一节最后看到的这个程序,我们先来简单的分析一下.有助于后面的学习 object HelloScala { def main(args: Array[String ...
- Scala中的函数高级使用
1.偏函数 1.基本介绍 在对符合某个条件,而不是所有情况进行逻辑操作时,使用偏函数是一个不错的选择 将包在大括号内的一组case语句封装为函数,我们称之为偏函数,它只对会作用于指定类型的参数或指定范 ...
- Scala 中 构造函数,重载函数的执行顺序
在调试scala在线开发教程(http://www.imobilebbs.com/wordpress/archives/4911)的过程中看到了以下代码,但是这段代码无论怎么调试都无法成功. abst ...
- Scala中的构造器和高阶函数
构造器 在定义类时可以定义主构造器.主构造器可以同时声明字段. /** * 主构造器 * @author Administrator */ //在scala中,类和方法交织在一起 class Test ...
- scala中的高阶函数
版权申明:转载请注明出处. 文章来源:http://bigdataer.net/?p=332 排版乱?请移步原文获得更好阅读体验 1.scala中的函数 scala是一门面向对象和函数式编程相结合的语 ...
- Scala中的Implicit详解
Scala中的implicit关键字对于我们初学者像是一个谜一样的存在,一边惊讶于代码的简洁, 一边像在迷宫里打转一样地去找隐式的代码,因此我们团队结合目前的开发工作,将implicit作为一个专题进 ...
- Scala 方法与函数
Scala 方法与函数:http://www.runoob.com/scala/scala-functions.html Scala 有方法与函数,二者在语义上的区别很小.Scala 方法是类的一部分 ...
随机推荐
- week05《Java程序设计》第五次学习总结
week05<Java程序设计>第五次学习总结 1. 本周学习总结 1.1 写出你认为本周学习中比较重要的知识点关键词 答:关键词:接口,inteface关键词,implement关键词, ...
- Week04《Java程序设计》第四周学习总结
Week04<Java程序设计>第四周学习总结 1. 本周学习总结 1.1 写出你认为本周学习中比较重要的知识点关键词 答:static关键字,final关键字,静态初始块,抽象类,继承, ...
- iostat使用心得
iostat用于输出CPU和磁盘I/O相关的统计信息. 命令格式: iostat [ -c | -d ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ device [ ... ...
- 关于vsftpd.conf配置
vsftpd配置文件详解 转自http://yuanbin.blog.51cto.com/363003/108262/ 1.默认配置: 1>允许匿名用户和本地用户登陆. ano ...
- Windows Phone 8 Programming Considerations
OpenGL ES 2.0 Support Marmalade supports the Open GL ES 2.0 Graphics API on Windows Phone 8 using a ...
- 【前端】JavaScript入门学习
<button type="button" onclick="alert('hillo!')">Here</button> <sc ...
- Android4.0系统接收不到广播的问题解析
在3.1之后,系统的package manager增加了对处于“stopped state”应用的管理,这个stopped和Activity生命周期中的stop状态是完全两码事,指的是安装后从来没有启 ...
- envoy 测试试用
备注: 为了简单测试使用的是docker 镜像进行的测试 1. Dockerfile FROM lyft/envoy:latest RUN apt-get update COPY envoy ...
- SQL TINYINT 1 讨论记录
SQL TINYINT 1 讨论记录 群里有一位小伙伴又和他上司怒上了,关于 TINYINT 1 的问题. 这里记录一下,TINYINT 无符号可以是 0~255,而这里的 长度 1只是长度,并不是存 ...
- mysql 存储过程 事务处理 (转)
BEGIN DECLARE t_error INTEGER DEFAULT 0; DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET t_error=1; S ...