1.这是scala基础系列教程,适合入门者学习。

2.函数

定义函数

//没有返回值的函数,Unit 类似void
def error1(msg:String): Unit = {println(msg)
}// 类似上面的简写方式: 去掉Unit
def error2(msg:String){println(msg)
}//类似上面的简写方式: 去掉函数括号
def error3(msg:String)=println(msg)//带默认值
def error4(msg:String="我是默认值")=println(msg)

可变参数

 def sum(nums:Int*)={var sum = 0for(i <- nums){sum += i} // 这里是函数返回sumsum}
 // 调用 求1 到10 的和println(sum(1,2,3,4,5,6,7,8,9,10))

匿名函数
格式: val 变量名 = (参数:类型) => 函数体

 var p = (msg:String) => println(msg)p("调用匿名函数")

高阶函数: 用函数作为形参或带返回值的函数

下面是参数是函数的例子:

// 定义一个 匿名函数
var pFun = (msg:String)=>println(msg)// 定义一个高阶函数
// 第一个参数为函数: p:(String)=>Unit 是函数的形式声明(p函数名,一个String类型参数,无返回值)
//第二个参数为普通变量参数:
def test(p:(String)=>Unit , msg:String)=p(msg)// 调用高阶函数
test(pFun,"高阶函数")

下面是返回值是函数的例子:

// 定义一个匿名函数
var pFun = (a:Int,b:Int)=>a+b// 定义一个高阶函数
// 返回值为函数: (Int,Int)=>Int 是函数的形式声明(有两个Int参数,返回值是Int)
// =号 后面的 就是具体的函数
def sum():(Int,Int)=>Int = pFun//调用函数 ,求5 和8 的和
sum()(5,8)

Scala 函数柯里化

//普通函数定义
def add(x:Int,y:Int)=x+y
//换成柯里化 定义
def add2(x:Int)(y:Int)= x +y
//柯里化调用  (打印5和7的和)
println(add2(5)(7))

函数就到这里,谢谢观看

老生常谈:深圳有爱好音乐的会打鼓(吉他,键盘,贝斯等)的程序员和其它职业可以一起交流加入我们乐队一起嗨。我的QQ:657455400 表演视频实例:https://v.qq.com/x/page/f0517awx0x4.html

scala教程(二) 函数相关推荐

  1. scala 定义空list_四十二、Scala 教程: List(列表)

    列表 Scala 列表 有点像 数组, 因为他们都是有序存储结构,而且所有元素的类型都一样,但它又不同于数组 1. 列表(List)一旦被创建就不能改变其中的元素. 2. 列表(List)底层的数据结 ...

  2. scala初学之函数定义、流程控制、异常处理入门

    特此声明,本文中的代码 部分或全部来源王家林的scala教程:虽然王家林一直被大家所诟病,而且也无法确定这些scala的程序代码是不是他的.但是作为一个初学者觉得就算代码不是他的,他只是拿过来翻译一次 ...

  3. 尚硅谷大数据技术Scala教程-笔记04【集合】

    视频地址:尚硅谷大数据技术之Scala入门到精通教程(小白快速上手scala)_哔哩哔哩_bilibili 尚硅谷大数据技术Scala教程-笔记01[Scala课程简介.Scala入门.变量和数据类型 ...

  4. Scala函数式编程(三) scala集合和函数

    前情提要: scala函数式编程(二) scala基础语法介绍 scala函数式编程(二) scala基础语法介绍 前面已经稍微介绍了scala的常用语法以及面向对象的一些简要知识,这次是补充上一章的 ...

  5. Java 结构体之 JavaStruct 使用教程二 JavaStruct 用例分析

    使用环境 前一篇在介绍 JavaStruct 类时指定了使用库使用环境为 Java 5 及以上,也即开发我们使用的 JDK 版本为1.5及以上就可以了.以下讲解的用例可以直接将 code 直接粘贴到 ...

  6. MongoDB 教程二: 添加, 删除,查询 shell命令

    视频:MongoDB 教程二: 添加, 删除,查询 shell命令 MongoDB Shell 常用操作命令 MonoDB   shell命令操作语法和JavaScript很类似,其实控制台底层的查询 ...

  7. 区块链教程(二):基础概念介绍

    注:本教程为技术教程,不谈论且不涉及炒作任何数字货币 本系列重点在于以太坊基础知识.以太坊客户端以及以太坊solidity编程,因此博客重点在于以太坊核心知识点的掌握,区块链部分的基础知识可以作为补充 ...

  8. scala基础之函数和闭包

    一 函数的类型 1.1 不带返回值的类型 def sayHello() {     println("hello") } # Unit 和 java的返回值类型void是一样的 d ...

  9. R语言七天入门教程二:认识变量与运算符

    R语言七天入门教程二:认识变量与运算符 一.什么是变量 1.变量 顾名思义,我们可以将变量理解为"可以改变的量",是计算机语言中能储存计算结果或能表示值的抽象概念.这里的值可以是数 ...

  10. 【Visual C++】游戏开发五十六 浅墨DirectX教程二十三 打造游戏GUI界面(一)

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/16384009 作者:毛星 ...

最新文章

  1. Linux中的无人职守安装脚本kickstart
  2. Php使用selenium爬虫,selenium,python爬虫_使用selenium爬取网站时输出结果不正确,selenium,python爬虫 - phpStudy...
  3. Windows 之 win10快捷键
  4. ROS系统 常用可视化工具的使用
  5. 实战SSM_O2O商铺_24【商铺列表】View层开发
  6. java动态生成柱状图3D_在android上动态实现ichartjs的3D柱形图
  7. Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC
  8. iOS7应用开发5、视图控制器View Controller及其生命周期
  9. php安装好wampserver后出现的问题
  10. UVa 10066 - The Twin Towers(LCS水题)
  11. Hat’s Words (分成两个字符串考虑)
  12. java biginteger相比_java Biginteger类
  13. 从终端直接下载cuDNN
  14. jstl标签中的fn与fmt标签的用法
  15. “刀片嗓”“水泥鼻”“咳出肺”可以这样缓解!
  16. selenium自动化测试随笔,安装selenium
  17. MP4视频文件过大压缩的技巧是什么?简单步骤讲解
  18. 阿里云99/年 189/2年 279/3年
  19. 超声换能器的主要性能指标
  20. 软件测试工程师的核心竞争力是什么?

热门文章

  1. 数字抽奖小程序_两款火爆的抽奖小程序,最高抽2000元现金红包 亲测提现8.59元秒到...
  2. astgo-官方功能更新日志
  3. 电机学(1) - 绪论
  4. 陈纪修老师《数学分析》 第10章:函数项级数 笔记
  5. Linux 重启oracle数据库
  6. 关于java小游戏的暂停,退出和从新开始
  7. NEON码农指导 Chapter 3 : NEON Instruction Set Architecture
  8. 【数据结构系列】严蔚敏C语言版算法实现并附带详细注释(逐步更新)
  9. Ubuntu源码安装gcc-10
  10. 飞机模拟flightgear