时间复杂度是否取决于要匹配的内容,还是将其编译成某种形式的可以进行O(1)查找的查找表?
某些Scala match
语句可以编译为与Java switch
语句相同的字节码。有一个注释可以确保这一点。
但是,在大多数情况下,尤其是复杂的情况(如解构),它将被编译为与一系列if / else
语句相同的字节码。
通常,我不希望它们是“恒定”操作,而是“线性”操作。在任何情况下,由于输入的最大检查数不会改变,通常不会超过十个。正式地说,它具有O(1)复杂度。
有关详细说明,请参见yAs answerlA的答案。
如果您担心,可以先提出最常见的案例,然后再提出其他案例。但是,我不太在意它的性能,您的应用程序不会真正注意到它。我更喜欢代码的可读性和正确性。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句