Pour le code scala suivant, lorsque je place un point de débogage au niveau de l'instruction if et que j'active "Log : Message d'atteinte du point d'arrêt"
object App1 {
def main(args: Array[String]): Unit = {
iftest()
}
def iftest(): Unit = {
val setA: Set[String] = Set("a", "b", "c");
var setB: Set[String] = Set("d", "e", "f")
if(setA.size > setB.size){ //here break point at line 8
println("bigger")
}
}
}
J'ai obtenu la sortie suivante dans la console. La question est de savoir pourquoi ce point d'arrêt est atteint deux fois.
Breakpoint reached at com.eguller.App1$.iftest(App1.scala:8)
Breakpoint reached at com.eguller.App1$.iftest(App1.scala:8)
Mais pour suivre un code Java similaire, le point d'arrêt n'est atteint qu'une seule fois.
Set<String> set1 = new HashSet<>();
set1.add("1");
set1.add("2");
Set<String> set2 = new HashSet<>();
set2.add("a");
set2.add("b");
if(set1.size() > set2.size()){ //here break point at line 8
System.out.println("size different");
}
J'ai obtenu le résultat suivant
Breakpoint reached at com.eguller.JApp.main(JApp.java:8)
S'agit-il d'un bogue dans le débogueur Intellij ou d'une caractéristique du langage de programmation Scala ?
IntelliJ IDEA 2021.3 Java - 11 Scala - 2.12.15