我在现场观看了一个人,他们说他们在工作时正在使用Scala功能,他们使用案例类,将类型转换为另一种类型,到处都是不变性等等。
这实际上如何运作?我希望通过纯粹的功能方法看到一个简单的hello world应用程序。
此外,我无法看到如何完全摆脱var
,因为有时我只是需要它。
答案 0 :(得分:5)
在Coursera上有一个course。
答案 1 :(得分:1)
“Hello world”对于演示功能方法并不是很好,因为它没有任何功能。 (事实上,正如@delnan所指出的那样,写入标准输出被视为副作用,因此该程序永远不能完全实现。)
您需要var
的最可能原因是使用命令式样式循环,这实际上不是功能性方法。功能等价物是使用集合上的一些可用过滤器/转换函数,或使用递归。
简单示例:查找列表中以“F”开头的所有字符串。势在必行的风格(Java):
List<String> result = new ArrayList<String>();
for (String s : strings) {
if (s.startsWith("F")
result.add(s);
}
使用旧式迭代器循环时,命令会更加明显。
相比之下,功能风格可能类似于:
val result = strings.filter(_.startsWith("F"))