2020-04-08 11:07发布
第一种,比如C语言的函数
函数返回类型函数名(参数类型 参数, ....){
_____函数体
}
第二种,比如lua的函数
函数关键字 函数名(参数,...)
结束关键字
第三种,匿名函数(无函数名)
变量 = 函数关键字(参数,...)
第四种,汇编中的函数
开始关键字 函数名
第五种,比如Pascal中的函数
变量声明关键字 变量声明体
函数开始关键字
scala是面向对象的语言,同时也是函数式编程语言。函数在scala中是一等公民,它和变量一样,既可以作为其他函数的参数,也可以将函数赋值给一个变量。
在scala中定义函数有很多方式,不熟悉scala的同学初看之时难免被搞得晕头转向。这里,我试图按照函数是否有返回值来总结一下函数定义的规律,仅供参考。
一、有返回值的函数定义:
1、标准形式(就是函数形参,返回类型,return语句全有)
def addInt(a:Int, b:Int):Int = {
var total:Int = a + b
return total
括号里是形参,冒号后面是返回类型,大括号里是函数体。
注意,有返回值的函数定义在大括号前必须有等号,不能省略。
2、省略返回类型和return
当有返回值的时候,可以不显式写出返回类型,scala会自动判断。同时return也可以省略。上面的函数可以简写成:
def addInt(a:Int, b:Int) = {
a + b
scala自动返回函数体中最后一个表达式的值并判断类型。这里再多说一句,在java中例如x=1这样的表达式返回的是1,而在scala中赋值语句返回的是空值。所以,如果你想返回值,不要以赋值语句作为最后一条语句。
3、省略大括号
当函数体只有一行语句的时候,可以省略大括号。上面的函数可以再简写成:
def addInt(x:Int, y:Int) = a + b
怎么样,是不是比java简洁很多。
上面3种情况是有返回值的,下面说说无返回值的,更简单。
二、无返回值的函数定义
1、显式标识无返回值
def retrunNone(a:Int,b:Int):Unit = {
print(a + b)
Unit关键字表示函数无返回值。
2、省略Unit
和有返回值类似,这里也可以省略Unit,让scala自己去知道这个函数无返回值。那么它是怎么知道的呢?就是省略等号。当函数定义没有等号的时候,scala认为这个函数无返回值。
def retrunNone(a:Int,b:Int){
最后,我们说说也是经常会看到的一种函数定义——匿名函数。
匿名函数顾名思义,就是没有名字的函数。它可以作为函数的参数,也可以直接赋值给变量。
val addInt = (x:Int,y:Int)=> x + y //将一个函数赋值给变量,调用的时候addInt(1,2)
def myFun(f : (Int,Int) => Int, x:Int, y:Int) = f(x,y)
上面这个函数定义了一个匿名函数作为函数的参数,这个匿名函数有两个Int的参数,返回类型是Int。
调用的时候我们可以将任何满足匿名函数条件的函数传入,比如addInt。
那么就是myFun(addInt, 1, 2),返回的是3。
好了,函数定义就先说这么多,欢迎关注后续文章。
1、学习一款新的软件,我们要知道软件的布局,以及各个功能,面板等等。这个部分是最容易的,只要仔细熟悉界面,记住就ok了。2、掌握软件基础功能之后,就开始运用于基础的操作,继续深化掌握软件。这个过程也不是很难,基础工具掌握之后,基础的图像操作以及...
电商架构一般是JAVA 跟PHP,JAVAEE构建大型电商网站更稳定 安全 。但是开发成本高,PHP则更快
字面翻译是内核的安全检查失败。是有驱动或者安全软件,直接介入内核层导致的吧?装了什么软件?或者第三方修改的驱动?
《Java基础入门(第2版)》出版社:清华大学出版社这本书在第一版的基础上进行的升级,增加了很多重要知识点的原理剖析。很适合新手打基础用,因为很多高效也用第一版本作为教材的。内涵比较多的知识点案例,还充分的考虑到了学生对Java相关知识点的底层原理...
一、IE浏览器设置代理IP IE浏览器无疑是最常用的浏览器,而像360浏览器、搜狗浏览器、QQ浏览器这样的浏览器都是基于IE内核开发的浏览器,设置代理IP的方法也大同小异。 1、IE浏览器上选择工具——Internet选项——连接——局域网设置。 2、在局域网...
平面构成理论解决图案问题,色彩构成理论解决配色问题,立体构成理论解决造型问题。
那基本上是没有太大的希望,就像是你问小学生能不能学习线性代数差不多儿,的确有学会的,但是数量肯定是特别少
可以学python
有的 具体的可以咨询一些培训机构的客服哦~
商业模式解析——韩都衣舍的海星模式什么是海星模式?韩都衣舍的老板,先到韩国一口气谈了200多个服装品牌做代理。回国后他并没有选择自己卖,而是到大学招聘创业者。要求是每三个大学生组成一个创业团队(1个美工,1个商务,1个客服),也就是一个网店的基本...
互联网+社区,或者说互联网+x这种概念最近才是真正的风口浪尖,还是刀尖那种。不像前几年,概念一处,几乎所有人都嗅到了肉味,力争分一杯羹。最近的卖菜事件让人们开始真正的审视问题的所在,互联网+x最后都会发展成寡头垄断,服务没提高多少,价格却居高不...
1.java基础2.JSP+Servlet+JavaBean 这个环节主要是懂流程的3.Struts+Hibernate+Spring这个是开发的主流技术 把每个都搞清楚 哪个框架是什么层的4.Ajax(最好学学 很多公司都注重这个)
是算法
最多设置5个标签!
第一种,比如C语言的函数
函数返回类型函数名(参数类型 参数, ....){
_____函数体
}
第二种,比如lua的函数
函数关键字 函数名(参数,...)
_____函数体
结束关键字
第三种,匿名函数(无函数名)
变量 = 函数关键字(参数,...)
_____函数体
结束关键字
第四种,汇编中的函数
开始关键字 函数名
_____函数体
结束关键字
第五种,比如Pascal中的函数
函数关键字 函数名(参数,...)
变量声明关键字 变量声明体
函数开始关键字
_____函数体
结束关键字
scala是面向对象的语言,同时也是函数式编程语言。函数在scala中是一等公民,它和变量一样,既可以作为其他函数的参数,也可以将函数赋值给一个变量。
在scala中定义函数有很多方式,不熟悉scala的同学初看之时难免被搞得晕头转向。这里,我试图按照函数是否有返回值来总结一下函数定义的规律,仅供参考。
一、有返回值的函数定义:
1、标准形式(就是函数形参,返回类型,return语句全有)
def addInt(a:Int, b:Int):Int = {
var total:Int = a + b
return total
}
括号里是形参,冒号后面是返回类型,大括号里是函数体。
注意,有返回值的函数定义在大括号前必须有等号,不能省略。
2、省略返回类型和return
当有返回值的时候,可以不显式写出返回类型,scala会自动判断。同时return也可以省略。上面的函数可以简写成:
def addInt(a:Int, b:Int) = {
a + b
}
scala自动返回函数体中最后一个表达式的值并判断类型。这里再多说一句,在java中例如x=1这样的表达式返回的是1,而在scala中赋值语句返回的是空值。所以,如果你想返回值,不要以赋值语句作为最后一条语句。
3、省略大括号
当函数体只有一行语句的时候,可以省略大括号。上面的函数可以再简写成:
def addInt(x:Int, y:Int) = a + b
怎么样,是不是比java简洁很多。
上面3种情况是有返回值的,下面说说无返回值的,更简单。
二、无返回值的函数定义
1、显式标识无返回值
def retrunNone(a:Int,b:Int):Unit = {
print(a + b)
}
Unit关键字表示函数无返回值。
2、省略Unit
和有返回值类似,这里也可以省略Unit,让scala自己去知道这个函数无返回值。那么它是怎么知道的呢?就是省略等号。当函数定义没有等号的时候,scala认为这个函数无返回值。
def retrunNone(a:Int,b:Int){
print(a + b)
}
最后,我们说说也是经常会看到的一种函数定义——匿名函数。
匿名函数顾名思义,就是没有名字的函数。它可以作为函数的参数,也可以直接赋值给变量。
val addInt = (x:Int,y:Int)=> x + y //将一个函数赋值给变量,调用的时候addInt(1,2)
def myFun(f : (Int,Int) => Int, x:Int, y:Int) = f(x,y)
上面这个函数定义了一个匿名函数作为函数的参数,这个匿名函数有两个Int的参数,返回类型是Int。
调用的时候我们可以将任何满足匿名函数条件的函数传入,比如addInt。
那么就是myFun(addInt, 1, 2),返回的是3。
好了,函数定义就先说这么多,欢迎关注后续文章。
相关问题推荐
1、学习一款新的软件,我们要知道软件的布局,以及各个功能,面板等等。这个部分是最容易的,只要仔细熟悉界面,记住就ok了。2、掌握软件基础功能之后,就开始运用于基础的操作,继续深化掌握软件。这个过程也不是很难,基础工具掌握之后,基础的图像操作以及...
电商架构一般是JAVA 跟PHP,JAVAEE构建大型电商网站更稳定 安全 。但是开发成本高,PHP则更快
字面翻译是内核的安全检查失败。是有驱动或者安全软件,直接介入内核层导致的吧?装了什么软件?或者第三方修改的驱动?
《Java基础入门(第2版)》出版社:清华大学出版社这本书在第一版的基础上进行的升级,增加了很多重要知识点的原理剖析。很适合新手打基础用,因为很多高效也用第一版本作为教材的。内涵比较多的知识点案例,还充分的考虑到了学生对Java相关知识点的底层原理...
一、IE浏览器设置代理IP IE浏览器无疑是最常用的浏览器,而像360浏览器、搜狗浏览器、QQ浏览器这样的浏览器都是基于IE内核开发的浏览器,设置代理IP的方法也大同小异。 1、IE浏览器上选择工具——Internet选项——连接——局域网设置。 2、在局域网...
平面构成理论解决图案问题,色彩构成理论解决配色问题,立体构成理论解决造型问题。
那基本上是没有太大的希望,就像是你问小学生能不能学习线性代数差不多儿,的确有学会的,但是数量肯定是特别少
可以学python
有的 具体的可以咨询一些培训机构的客服哦~
商业模式解析——韩都衣舍的海星模式什么是海星模式?韩都衣舍的老板,先到韩国一口气谈了200多个服装品牌做代理。回国后他并没有选择自己卖,而是到大学招聘创业者。要求是每三个大学生组成一个创业团队(1个美工,1个商务,1个客服),也就是一个网店的基本...
互联网+社区,或者说互联网+x这种概念最近才是真正的风口浪尖,还是刀尖那种。不像前几年,概念一处,几乎所有人都嗅到了肉味,力争分一杯羹。最近的卖菜事件让人们开始真正的审视问题的所在,互联网+x最后都会发展成寡头垄断,服务没提高多少,价格却居高不...
1.java基础2.JSP+Servlet+JavaBean 这个环节主要是懂流程的3.Struts+Hibernate+Spring这个是开发的主流技术 把每个都搞清楚 哪个框架是什么层的4.Ajax(最好学学 很多公司都注重这个)
是算法