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中的函数的更多相关文章

  1. 【Scala篇】--Scala中的函数

    一.前述 Scala中的函数还是比较重要的,所以本文章把Scala中可能用到的函数列举如下,并做详细说明. 二.具体函数 1.Scala函数的定义 def fun (a: Int , b: Int ) ...

  2. Scala中的函数表达式

    最近看Spark的东西,由于之前没有接触过lambda函数表达式,所以搜了点资料,特地纪录在此 Scala中的Lambda表达式 在函数式编程中,函数是基本的构造块.Scala融合了java中的面向对 ...

  3. 大数据学习之Scala中main函数的分析以及基本规则(2)

    一.main函数的分析 首先来看我们在上一节最后看到的这个程序,我们先来简单的分析一下.有助于后面的学习 object HelloScala { def main(args: Array[String ...

  4. Scala中的函数高级使用

    1.偏函数 1.基本介绍 在对符合某个条件,而不是所有情况进行逻辑操作时,使用偏函数是一个不错的选择 将包在大括号内的一组case语句封装为函数,我们称之为偏函数,它只对会作用于指定类型的参数或指定范 ...

  5. Scala 中 构造函数,重载函数的执行顺序

    在调试scala在线开发教程(http://www.imobilebbs.com/wordpress/archives/4911)的过程中看到了以下代码,但是这段代码无论怎么调试都无法成功. abst ...

  6. Scala中的构造器和高阶函数

    构造器 在定义类时可以定义主构造器.主构造器可以同时声明字段. /** * 主构造器 * @author Administrator */ //在scala中,类和方法交织在一起 class Test ...

  7. scala中的高阶函数

    版权申明:转载请注明出处. 文章来源:http://bigdataer.net/?p=332 排版乱?请移步原文获得更好阅读体验 1.scala中的函数 scala是一门面向对象和函数式编程相结合的语 ...

  8. Scala中的Implicit详解

    Scala中的implicit关键字对于我们初学者像是一个谜一样的存在,一边惊讶于代码的简洁, 一边像在迷宫里打转一样地去找隐式的代码,因此我们团队结合目前的开发工作,将implicit作为一个专题进 ...

  9. Scala 方法与函数

    Scala 方法与函数:http://www.runoob.com/scala/scala-functions.html Scala 有方法与函数,二者在语义上的区别很小.Scala 方法是类的一部分 ...

随机推荐

  1. webpack 使用中的问题

    用gulp-watch代替watch webpack打包体积分析器 集合

  2. Ubuntu使用PlayOnLinux笔记

    playonlinux官网:https://www.playonlinux.com/en/ 帮助文档:https://www.playonlinux.com/en/documentation.html ...

  3. 【MFC】MFC技巧学习 当做字典来查

    MFC技巧学习 摘自:http://www.cnblogs.com/leven20061001/archive/2012/10/17/2728023.html 1."属性页的添加:创建对话框 ...

  4. Hadoop集群中节点角色定义

    Hadoop分别从两个角度将主机划分为两种角色. 最基本的划分原则为Master和Slave,即主人和奴隶: 第一,从HDFS的角度,将主机划分为NameNode和DataNode(在分布式文件系统中 ...

  5. C# 通过窗口句柄获取程序路径 图标

    转自:http://qqhack8.blog.163.com/blog/static/11414798520113363829505/ C# 通过窗口句柄获取程序路径 图标using System;u ...

  6. 【java规则引擎】drools6.5.0版本api简介

    在有些术语使用的时候,我有时候会用KIE项目.KIE引擎或者Drools项目.Drools引擎,大家应该理解KIE是Drools等项目的一个统称,所以在大多数情况下KIE或者特指Drools都是差不多 ...

  7. is is not == !=之间的区别

    简单来说,python中的is与is not运算符可判断两个对象是否为同一对象.若为同一个对象,则对象1 is 对象2为True .反正,若非同一个对象,则对象1 is not 对象2为True 要理 ...

  8. 谷歌(google)世界各国网址大全

    谷歌(google)世界各国网址大全世界各国google网址 国家    网址         国家主要语言 亚洲:中国  google.cn 汉语蒙古 google.mn蒙古语韩国 google.c ...

  9. 使用resteasy作为dubbox消费者

    dubbox服务提供者是REST风格的,消费者可能是从dubbox过来的,也可能是从第三方外部系统过来的.后者的话我们没得选,只能以服务提供者直连,服务治理平台和监控中心手再长,也管不到别人的地盘.但 ...

  10. springmvc freemarker 全局变量的三种配置方式

    方法一 直接在spring-servlet.xml 中进行配置 <bean id="freemarkerConfiguration" class="org.spri ...