Scala-方法参数-def函数:Row=>Message={Row=>{
来自Java背景,试图理解此Scala代码:Scala-方法参数-def函数:Row=>Message={Row=>{,scala,function,Scala,Function,来自Java背景,试图理解此Scala代码: def function: Row => Message = { row => { // code // code } } 据我所知,我们传递了一个返回消息类型的函数,然后我们实际实现了row?为什么第一行是大写,第二行不是 谢谢。不太好 def表示您正在定义一个方法。在这种情况下,它不带参数,返回类型为Row=>Message 因此,您定义的函数方法返回一个函数,该函数接受一行并返回一条消息。不完全如此 def
def function: Row => Message = {
row => {
// code
// code
}
}
据我所知,我们传递了一个返回消息类型的函数,然后我们实际实现了row?为什么第一行是大写,第二行不是
谢谢。不太好
def表示您正在定义一个方法。在这种情况下,它不带参数,返回类型为Row=>Message
因此,您定义的函数方法返回一个函数,该函数接受一行并返回一条消息。不完全如此
def表示您正在定义一个方法。在这种情况下,它不带参数,返回类型为Row=>Message
因此,您定义的函数方法返回一个函数,该函数接受一行并返回一条消息。让我们对其进行分解
def函数
声明一个名为function的方法,该方法没有输入
:行=>消息
返回类型是将行作为输入并返回消息的函数 =行=>{…} 使用名为row的单个输入定义和匿名函数。这是在Scala中返回的函数。返回块中的最后一个内容,因此您不需要使用return关键字。Scala能够确定此函数的输入和输出类型,因为它们必须与您为me声明的返回类型相匹配方法。让我们把它分解一下 def函数 声明一个名为function的方法,该方法没有输入 :行=>消息
返回类型是将行作为输入并返回消息的函数 =行=>{…} 使用名为row的单个输入定义和匿名函数。这是在Scala中返回的函数。返回块中的最后一个内容,因此您不需要使用return关键字。Scala能够确定此函数的输入和输出类型,因为它们必须与您为me声明的返回类型相匹配法德 据我所知,我们传递一个返回类型消息的函数 否。未传递任何内容。该方法函数没有任何参数,不接受任何参数,因此无法传递任何参数 然后我们实际实现了row 没有。没有实现任何内容。这里没有要实现的抽象成员或抽象接口 为什么第一排是资本,第二排不是 不必如此。这只是一种约定。类型通常是用PascalCase、参数、字段和方法在camelCase中编写的。实际上,在Java中也是一样的 粗略的Java等价物如下所示:
java.util.Function<Row, Message> function() {
return row -> {
// code
// code
};
}
正如你所看到的,两者之间并没有太大的区别
据我所知,我们传递一个返回类型消息的函数
否。未传递任何内容。该方法函数没有任何参数,不接受任何参数,因此无法传递任何参数
然后我们实际实现了row
没有。没有实现任何内容。这里没有要实现的抽象成员或抽象接口
为什么第一排是资本,第二排不是
不必如此。这只是一种约定。类型通常是用PascalCase、参数、字段和方法在camelCase中编写的。实际上,在Java中也是一样的
粗略的Java等价物如下所示:
java.util.Function<Row, Message> function() {
return row -> {
// code
// code
};
}
正如您所看到的,这两者之间并没有太大区别。返回类型是一个接受Row类型并返回消息的函数。该函数应该有更高级别的实现 检查此链接,它将帮助您了解:
返回类型是一个函数,它接受类型Row并返回消息。该函数应该有更高级别的实现 检查此链接,它将帮助您了解: 这是一个返回函数的方法,该函数接收行并返回消息。您可以这样调用它:val msg:Message=functionRow这是一个返回函数并接收行并返回消息的方法。您可以这样调用它:val msg:Message=functionRow第一行是一个类型,第二行只是一个变量名和c可以是任何内容。变量名按约定以小写开头。第一行是类型,第二行只是变量名,可以是任何内容。变量名按约定以小写开头。