用于 FSM 解析器的 Java 还是 Scala?

标签 java scala

我需要为表示为文本的输入类型构建一个简单的解析器。

我使用两个 int 数组在 Java 中实现了 FSM:

states[][]
actions[][] 

当我调试它时,我意识到使用 Java 枚举可能更容易,因为这些类型的变量应该显示为 IntelliJ 中调试 View 中的值。然而,当我开始走这条路时,似乎使用 Enum 的唯一方法是将状态表和操作表放入 HashMap 中 - 或者有没有办法创建一个维度为 Enum 值的多维数组?如果可以的话,我宁愿不接受 HashMap 带来的对象创建和性能影响。

当时我想我可以看看 Scala,看看它是否是更好的选择。

所以,问题是 - Scala 是否是表达严格 FSM 的更好语言,还是我最好坚持使用 Java int 数组?

最佳答案

我衷心推荐您看一下 Scala——它是一门很棒的语言,非常值得评估。但您所描述的问题本身并不能成为学习新语言的充分理由。如果您学习 Scala,那么实现 FSM 解析器很可能会比 Java 更容易,但是学习 Scala 并实现一个简单的 FSM 解析器可能并不比仅使用 Java 更容易。

此外,目前还不太清楚您想要什么:您想通过枚举值对数组进行索引吗?你可以打字。你想要数组来保存枚举吗?那应该可行。您想将内部数组解释为枚举吗?编写一个包装函数来创建一个对象,该对象为您提供一个看起来像您想要的 View 。

关于用于 FSM 解析器的 Java 还是 Scala?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2380505/

相关文章:

scala - 如何增加(AKKA-HTTP 客户端)singleRequest 响应卡盘大小

scala - 如何获取上传文件的路径

scala - 如何从spark将文件写入cassandra

java - 将 java Stream 转换为 Set

java - 使用 BufferedImage 加载图像时内存使用率较高

java - 避免在java中的循环内实例化新对象

java - '_id'可以与Java UUID映射吗?

java - 查找具有预先计算值的表是 O(1) 算法吗?

java - Spring Security 绕过 URL 或 Filter

json - 如何在没有案例类的情况下解析 JSON Scala