如何在Scala中定义一个返回类型的方法?
|
我想在scala单例类中定义一个私有方法,如下所示:
private def createDomNode(tag: String, attrs: Map[String , String]): DomNode {
}
DomNode是Java类型,而不是scala类型。 attrs是scala Map,其键和值均为String类型。
但是上面给出了错误。正确的格式是什么?
感谢Easy Angel的回答。仍然有些混乱。根据该语言的发明者编写的《 Scala中的编程》一书,以下是一个函数:
def max(x: Int, y: Int): Int = {
if (x > y) x
else y
}
但是您的答案说这是方法而不是功能。你能解释一下吗?
什么是REPL?
没有找到相关结果
已邀请:
1 个回复
剑哎
:
如果您不会在方法签名和主体之间放置
,则返回类型为
,因此:
是相同的
对评论的回应:如果您在
,
或
定义内定义它,那么我先前描述的实际上是方法。函数语法如下所示:
如您所见,我以函数类型的名称
定义了
。它也可以这样写:
这是另一个例子。在这种情况下,我定义了每次调用时都会生成新函数的方法:
但重要的是要理解,在这种情况下,该方法返回一个“返回
\”的函数,而不返回
本身。 关于Scala中的编程参考。我认为您是在谈论第2章-第3步(在简介中) 如您所见,REPL中定义了
函数,它确实是函数。实际上,您也可以这样写:
在这种情况下,方法是
,功能是
。如您所见,它高度依赖于上下文。我相信
的语法只是它的语法糖(我需要仔细阅读spec才能确定):
在REPL中也是如此。顺便说一下,这是因为我在一开始就写道: 如果您在
,
或
定义内定义 抱歉,我需要对此更加清楚,并在第二次更新中对其进行更详细的描述。 我看着Scala规格。当我说ѭ21是该函数的语法糖时,似乎我并不完全正确。但似乎将其称为“方法类型”。您可以在规范部分3.3.1方法类型中找到它: http://www.scala-lang.org/docu/files/ScalaReference.pdf 如果您想深入了解这一点,希望它将为您提供一些线索。我认为很容易迷失术语。您可以在2种情况下
。首先我们有 函数-返回一些值 过程-不返回任何值(或在Scala上下文中返回
) 在第二种情况下: 功能-可以传递并视为值的可执行代码段 方法-属于此类 有时在什么上下文中不清楚。例如,我可以告诉您
是函数,只是因为它具有返回值(或换句话说:
它不是过程)。我相信书中也是这样。 还有一件事。 Scala编程中的8.1、8.2、8.3节可以帮助您理解此术语。如果我的假设是正确的,那么您在书中所称的
在书中称为called33ѭ(在第8.3节中进行了介绍)。 希望这可以帮助