scala scala-2.10

Alternativa a Scala REPL breakSi en 2.10



scala-2.10 (1)

Estaba leyendo here sobre el uso del método breakIf en el código REPL para la depuración interactiva, pero luego encontré esta publicación que decía que break y breakIf se eliminaron de ILoop en Scala 2.10. Lamentablemente, esa publicación no explica por qué se eliminó el código.

Supongo que estas funciones se eliminaron porque hay una mejor manera de hacerlo. Si ese es el caso, ¿podría alguien por favor iluminarme?


¿Tal vez la idea es que solo debes trabajar con ILoop directamente? Por lo que puedo decir, no debería ser mucho más complejo que:

// insert the code below wherever you want a REPL val repl = new ILoop repl.settings = new Settings repl.in = SimpleReader() repl.createInterpreter() // bind any local variables that you want to have access to repl.intp.bind("i", "Int", i) repl.intp.bind("e", "Exception", e) // start the interpreter and then close it after you :quit repl.loop() repl.closeInterpreter()

Comparado con la antigua API breakIf , este enfoque elimina un nivel adicional de breakIf indirecto tanto para la condición if (que estaba envuelta en a => Boolean ) como para DebugParam / NamedParam (que eran envoltorios temporales utilizados solo para completar los argumentos de NamedParam )

Este enfoque también le permite especificar su Settings según sea necesario. Por ejemplo, algunos errores REPL se pueden -Yrepl-sync con -Yrepl-sync pero el break no le dio ninguna forma de especificar eso .