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 方法是类的一部分 ...
随机推荐
- 【linux】基础知识学习
[版本] 两种:内核版本 . 发行版本 内核版本从 www.kernel.org 查看 发行版本: 1.retHat, centOS 更稳定,更安全,适宜做企业服务器 2.ubuntu, Debian ...
- commond prompt CD
如果要进入目前所在盘符的其他路径用cd命令可进入,但如果从c盘进入d盘等,是不用cd命令的. 如目前在c盘的任意目录,需要切换到d盘的根目录,用:“d:”命令(不含引号),如图: cd命令简介: 第一 ...
- Unity中使用柏林噪声生成地图
孙广东 2017.3.27 http://blog.csdn.NET/u010019717 主要是利用Unity的 Mathf.PerlinNoise 函数(柏林噪声)的不同寻常的功能. htt ...
- MbrFix 问题
删除Windows/Linux双系统下的Linux系统 参考博客 注意:官网上的 MbrFix.exe 下载或许太慢. CSDN下载 问题 1.看到博客下面的评论写道: 为什么我的到第四步的时候会提示 ...
- Reinforcement Learning Q-learning 算法学习-3
//Q-learning 源码分析. import java.util.Random; public class QLearning1 { private static final int Q_SIZ ...
- HihoCoder 1068 RMQ-ST算法+BIT
以前都是用的BIT或者线段树(前者多一些). 对于ST(Sparse Table),在求倍增or公共祖先(LCA)时见过,说明还有其他用处,所以还是学习一下. 首先是预处理,用动态规划(DP)解决. ...
- vs中删除nuget包
最近发现有些解决方案都是用来nuget包,这个偶尔能跑,但是有一个爱抽风的毛病,生成解决方案的时候报错:无法连接到远程服务器,真几把蛋疼.... 就是下图的情况 网上找了下不是很容易找到处理这个问题的 ...
- 关于setdefault和defaultdict
c参考链接:http://blog.csdn.net/real_ray/article/details/17919289 defaultdict就是为没有的键给一个默认的值,实际是实现了一个__mis ...
- numpy之初识ndarray
Numpy ndarray numpy的最重要特点就是其N维数组对象(ndarray). ndarray的可以对整块数据执行数学运算,语法与标量元素的元素的运算一致. 如: import numpy ...
- zabbix 3.0.2自定义脚本
http://blog.51cto.com/xiao987334176/1769766 有一个通知队列,如果超过了一定的值,就需要报警一下 查询接口可以返回队列的数量,格式是json,data后面的数 ...