Java 8 会像 Scala 和其他函数式程序那样支持模式匹配吗?我正在对 Java 8 的 Lambda 功能进行演示。我在这个特殊的函数式编程概念上找不到任何东西。
我记得让我对函数式编程感兴趣的是快速排序实现,尤其是与命令式编程的实现相比。
最佳答案
我想你不是在谈论在字符串上应用正则表达式的意义上的模式匹配,而是作为 applied in Haskell .例如使用通配符:
head (x:_) = x
tail (_:xs) = xs
Java 8 本身不支持这一点,但是使用 Lambda 表达式有一些方法可以做到这一点,例如计算阶乘:
public static int fact(int n) {
return ((Integer) new PatternMatching(
inCaseOf(0, _ -> 1),
otherwise( _ -> n * fact(n - 1))
).matchFor(n));
}
如何实现,您将在这篇博文中找到更多信息:Towards Pattern Matching in Java .
关于Java 8 模式匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11219858/