我正在学习编程范式在我的大学定义功能和阅读由定义的函数这样的讲师提供此课程材料:高清或Val在斯卡拉
val double = (x: Int) => 2 * x
double: Int => Int = <function1>
但是从我自己的研究,我发现并习惯于像这样定义相同的功能:
def d (x: Int) = 2 * x
d: (x: Int)Int
我是新来的斯卡拉。而且两者的定义给出的结果是:
res21: Int = 8
一旦通过4
作为参数。 现在我的主要问题是为什么讲师倾向于使用val
来定义一个函数?除非使用val
给出了一些我不知道的附加优点,否则我认为它的时间更长且没有必要。除此之外,我知道使用val
会在程序的后面写出一些名称作为占位符,所以我可能会错误地编写val double = 5
,并且该函数将消失! 在这个阶段,我确信我学会了定义一个函数的更好方式,除非别人会告诉我。
我没有资格说一些明确的关于斯卡拉,但你想真正做'VAL双= 5'的功能被定义为后'double'?我有这样的印象,一旦它被定义,就不可能重新定义一个名字。无论如何,'val'和'def'在这里都会产生相同的结果。区别仅仅在于风格。通常,用'def'定义一个函数更为明显,但有时用'val'定义它是有意义的。如果你不确定,我会建议你使用'def',因为它不太可能引起任何混淆。 – kqr
是的,我做了'VAL双= 5',键入'double'并得到了'res24:Scala的方法和功能的差异]的诠释= 5' – Emanuel
可能重复(http://stackoverflow.com/questions/2529184 /差之间-方法和 - 功能合阶) –