gpt4 book ai didi

scala @switch 注释,它对生成的字节码有什么影响吗?

转载 作者:行者123 更新时间:2023-12-04 15:22:31 25 4
gpt4 key购买 nike

从 scala 文档中,我理解 @switch 注释是告诉编译器验证匹配表达式是否已编译为 tableswitch 或 lookupswitch 并在编译为一系列条件表达式时发出错误。

现在我的问题是,如果编译成功,那么与根本不使用@switch 注释相比,它对生成的字节码有什么影响吗?

考虑以下两个示例代码版本,

版本 1

  import scala.annotation.switch

val x = 5

(x: @switch) match {
case 1 => println("1")
case 2 => println("2")
case _ => println("something else")
}

版本 2
  val x = 5

(x) match {
case 1 => println("1")
case 2 => println("2")
case _ => println("something else")
}

这不是两个版本都会在编译时产生相同的字节码指令吗?

最佳答案

两个版本产生相同的字节码。您可以通过将一个版本粘贴到 REPL 中来测试这一点,执行 :javap -拆卸它,然后对另一个版本重复。

关于scala @switch 注释,它对生成的字节码有什么影响吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23985248/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com