scala中的所有东西都是函数或表达式或对象吗?
我很迷惑.
我认为一切都是表达式,因为语句返回一个值.但我也听说scala中的所有东西都是一个对象. 实际上是什么?为什么scala选择以某种方式做到这一点?这对scala开发人员意味着什么? 解决方法
有些东西没有价值,但在大多数情况下,这是正确的.这意味着我们基本上可以放弃Scala中“statement”和“expression”之间的区别. 然而,术语“返回值”并不合适.我们说一切都“评估”到一个价值.
这与前面的语句完全不矛盾:)它只是意味着每个可能的值都是一个对象(所以每个表达式都会计算一个对象).顺便说一下,作为Scala中的一等公民的功能也是对象.
必须注意的是,这实际上是Java方式的一般化,其中语句和表达式是不同的东西,而不是一切都是对象.你可以将每一段Java代码翻译成Scala而不需要很多改编,但不是相反.因此,这个设计决策使得Scala在简洁性和表现力方面实际上更加强大.
例如,这意味着: >您通常不需要返回,因为您可以将返回值作为方法中的最后一个表达式 一个例子是: def mymethod(x: Int) = if (x > 2) "yay!" else "too low!" // ... println(mymethod(10)) // => prints "yay!" println(mymethod(0)) // => prints "too low!" 我们还可以将这样的复合表达式的值赋给变量: val str = value match { case Some(x) => "Result: " + x case None => "Error!" } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |