例一:《Spark大数据处理技术》程序2-25
val compareElement:((String,Int),(String,Int)) => (String,Int) = (val1,val2) => {
if (val1._2 >= val2._2){
val1
} else {
val2
}
}
注释:
1、用val定义函数
2、compareElement函数是匿名函数
3、((String,Int),(String,Int)) => (String,Int)
compareElement函数的函数类型声明,左边是输入参数类型,右边是方法返回值类型
4、(val1,val2) => {......}
左边是参数,右边是函数实现体
例二:
网址:http://zhouchaofei2010.iteye.com/blog/2251731
目前知道的基本和匿名函数定义和函数类型声明有关,以及在case语句中的使用
case
语句中
case x => y
不过stackoverflow 上关于这方面的讨论挺多的,故在此记录一下
比如来自 http://stackoverflow.com/questions/6951895/what-does-and-mean-in-scala 的一位的回复:
=> has several meanings in Scala, all related to its mathematical meaning as implication.
-
In a value, it introduces a function literal, or lambda. e.g. the bit inside the curly braces in
List(1,2,3).map { (x: Int) => x * 2 }(匿名函数定义) -
In a type, with symbols on both sides of the arrow (e.g.
A => T,(A,B) => T,(A,B,C) => T, etc.) it's sugar forFunction<n>[A[,B,...],T], that is, a function that takes parameters of typeA[,B...], and returns a value of typeT.(函数类型定义)-
Empty parens on the left hand side (e.g.
() => T) indicate that the function takes no parameters (also sometimes called a "thunk"); -
Empty parens on the right hand side denote that it returns
()—the sole value of typeUnit, whose name can also be written()—confused yet? :)A function that returns Unit is also known as a procedure, normally a method that's called only for its side effect.
-
-
In the type declaration for a method or function parameter, with no symbol on the left hand side (e.g.
def f(param: => T)) it's a "by-name parameter", meaning that is evaluated every time it's used within the body of the function, and not before. Ordinary "by-value" parameters are evaluated before entry into the function/method.(函数类型定义) -
In a
caseclause, they separate the pattern (and optional guard) from the result expression, e.g.case x => y.(case 语句)
http://stackoverflow.com/questions/6951895/what-does-and-mean-in-scala
http://stackoverflow.com/questions/7888944/scala-punct
本文深入探讨Scala中的函数定义,包括匿名函数、函数类型声明、by-name参数及在case语句中的应用。通过具体示例解释了函数定义的各种形式及其应用场景。
1万+

被折叠的 条评论
为什么被折叠?



