Scala中模式匹配的时间复杂度是多少?

奥姆里基

时间复杂度是否取决于要匹配的内容,还是将其编译成某种形式的可以进行O(1)查找的查找表?

路易斯·米格尔·梅加·苏亚雷斯

某些Scala match 语句可以编译为与Java switch 语句相同的字节码有一个注释可以确保这一点。
但是,在大多数情况下,尤其是复杂的情况(如解构),它将被编译为与一系列if / else 语句相同的字节码

通常,我不希望它们是“恒定”操作,而是“线性”操作。在任何情况下,由于输入的最大检查数不会改变,通常不会超过十个。正式地说,它具有O(1)复杂度。
有关详细说明,请参见yAs answerlA的答案。

如果您担心,可以先提出最常见的案例,然后再提出其他案例。但是,我不太在意它的性能,您的应用程序不会真正注意到它。我更喜欢代码的可读性和正确性。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章