大三寒假学习 spark学习 函数定义 函数的类型和值
函数字面量:
字面量包括整数字面量、浮点数字面量、布尔型字面量、字符字面量、字符串字面量、符号字面量、函数字面量和元组字面量
函数字面量可以体现函数式编程的核心理念:
- 在函数式编程中,函数是“头等公民”,可以像任何其他数据类型一样被传递和操作,也就是说,函数的使用方式和其他数据类型的使用方式完全一致了
- 这时,我们就可以像定义变量那样去定义一个函数,由此导致的结果是,函数也会和其他变量一样,开始有“值”
- 就像变量的“类型”和“值”是分开的两个概念一样,函数式编程中,函数的“类型”和“值”也成为两个分开的概念,函数的“值”,就是“函数字面量”
函数的类型和值:
定义函数最通用的方法是作为某个类或者对象的成员,这种函数被称为方法,其定义的基本语法为:
def 方法名(参数列表):结果类型={方法体}
示例:
def counter( value : Int ): Int={value += 1}
上面定义的函数的类型如下:
( Int ) => Int
- 括号中为参数列表中的类型,箭头后面为返回值的类型
- 参数列表中只有一个类型时,可以将括号省略,多个类型之间用逗号隔开
上面定义的函数的值为:
(value) => { value + 1 }//只有一条语句时大括号可以省略
“=>”前面的value是参数名,“=>”后面是具体的运算语句或表达式
现在我们通过定义一个变量来参考如何定义一个函数:
val num: Int = 5
我们按照上面的形式定义函数:
val counter: Int => Int = {( value ) => value += 1}
从上面可以看出,在Scala中,函数已经是“头等公民”,单独剥离出来了“值”的概念,一个函数“值”就是函数字面量。这样,我们只要在某个需要声明函数的地方声明一个函数类型,在调用的时候传一个对应的函数字面量即可,和使用普通变量一模一样
分类:
大三寒假
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
2021-01-16 大二寒假作业之Android