Function 将此函数转换为匿名函数

Function 将此函数转换为匿名函数,function,scala,functional-programming,Function,Scala,Functional Programming,如何创建此函数,如果匿名函数的数字为5,该函数将返回true: def yeah_five(p: Int): Boolean = p == 5 谢谢?您想要一个接受整数并返回布尔值的函数吗 (p: Int) => (p == 5); 通读有关函数的教程。匿名函数的简短符号: (p: Int) => (p == 5); 长版本: new Function1[Int] { def apply(p: Int): Int = p == 5 } 我想最短的写法应该是: val f:

如何创建此函数,如果匿名函数的数字为5,该函数将返回true:

def yeah_five(p: Int): Boolean = p == 5

谢谢?

您想要一个接受整数并返回布尔值的函数吗

(p: Int) => (p == 5);

通读有关函数的教程。

匿名函数的简短符号:

(p: Int) => (p == 5);
长版本:

new Function1[Int] {
  def apply(p: Int): Int = p == 5
}

我想最短的写法应该是:

val f: Int => Boolean = (_ == 5)
当然,根据上下文的不同,您可以松开类型注释:

List(1, 2, 3, 5, 4, 5).filter(_ == 5)

=> List(5, 5)
根据@Senia的观察,您可以更简洁地使用
5=
将对象5的
=
方法转换为函数

val g: Int => Boolean = 5==
List(1, 2, 3, 5, 4, 5).filter(g) => List(5, 5)

如果要将已声明的方法转换为函数,请执行以下操作

yeah_five _

如果你想要最短的路径:
列表(1,2,3,5,4,5)。过滤器(5==)
@senia谢谢你,我没有想到。如果你同意的话,我会用你的观察更新我的答案you@alex23部分应用了,是的。@senia-是的,我刚才看到了,但我不明白为什么。@MariusDanila:这是因为重载的方法。在类型
Int
中,有几种名为
==
的方法。
List[Int]
的方法
filter
使用类型为
Int=>Boolean
的函数,因此您不必指定它。哪个函数?您的代码示例中没有函数。更短的是(u:Int)==5