Raf*_*ler 74
函数文字是定义函数的替代语法.当你想将一个函数作为参数传递给一个方法(特别是像折叠或过滤操作这样的高阶函数)但是你不想定义一个单独的函数时,这很有用.函数文字是匿名的 - 默认情况下它们没有名称,但您可以通过将它们绑定到变量来为它们命名.函数文字的定义如下:
(a:Int, b:Int) => a + b
Run Code Online (Sandbox Code Playgroud)
您可以将它们绑定到变量:
val add = (a:Int, b:Int) => a + b
add(1, 2) // Result is 3
Run Code Online (Sandbox Code Playgroud)
就像我之前说过的那样,函数文字对于作为参数传递给高阶函数很有用.它们对于定义嵌套在其他函数中的单行或辅助函数也很有用.
Scala之旅为函数文字提供了很好的参考(他们称之为匿名函数).
Mar*_*lic 19
将函数文字与Scala中的其他类型的文字进行比较可能很有用.文字是用于表示语言认为特别重要的某些类型的值的符号糖.Scala具有整数文字,字符文字,字符串文字等.Scala将函数视为源代码中可通过函数文字表示的第一类值.这些功能值属于特殊功能类型.例如,
5
是表示Int
类型值的整数文字'a'
是表示Char
类型值的字符文字(x: Int) => x + 2
是一个函数文字,表示Int => Int
函数类型中的值文字通常用作匿名值,即不首先将它们绑定到命名变量.这有助于使程序更简洁,并且当文字不可重用时是合适的.例如:
List(1,2,3).filter((x: Int) => x > 2)
Run Code Online (Sandbox Code Playgroud)
与
val one: Int = 1
val two: Int = 2
val three: Int = 3
val greaterThan2: (Int => Int) = (x: Int) => x > two
List(one,two,three).filter(greaterThan2)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
24914 次 |
最近记录: |