¿Hay alguna forma conveniente de volcar todos los miembros de un objeto especificado en Scala,
como var_dump()
, PHP function?var_dump() en Scala
Respuesta
Como se mencionó en "How to Dump/Inspect Object or Variable in Java" (sí, lo sé, la cuestión es sobre Scala):
Scala (consola) tiene una característica muy útil para inspeccionar o volcar variables/valores de objeto:
scala> def b = Map("name" -> "Yudha", "age" -> 27)
b: scala.collection.immutable.Map[java.lang.String,Any]
scala> b
res1: scala.collection.immutable.Map[java.lang.String,Any] = Map((name,Yudha), (age,27))
Pero si quieres más detalles, se puede dar una oportunidad REPL Scala Utils, con el fin de obtener una "Easier object inspection in the Scala REPL"
Así que he escrito una utilidad para usar en Scala REPL que mostrará imprimiendo todos los "atributos" de un objeto.
(Nota: "I" estar aquí: Erik Engbrecht, también on BitBucket)
He aquí algunos ejemplos de uso:
scala> import replutils._
import replutils._
scala> case class Test(a: CharSequence, b: Int)
defined class Test
scala> val t = Test("hello", 1)
t: Test = Test(hello,1)
scala> printAttrValues(t)
hashCode: int = -229308731
b: int = 1
a: CharSequence (String) = hello
productArity: int = 2
getClass: Class = class line0$object$$iw$$iw$Test
Eso parece bastante anti-climática, pero después de pasar horas escribiendo para ver qué hay, y hurgando en los métodos, parece un milagro.
Además, una buena característica es que si la clase del objeto devuelto es diferente de la clase declarada en el método, imprime tanto la clase declarada como la clase devuelta real.
Es posible que desee mirar ToStringBuilder en commons-lang, específicamente ToStringBuilder.reflectionToString()
.
En el código compilado, la mejor manera es simplemente declarar su tipo como una clase de caso, luego use el método toString
generado.
Todo lo demás subclases Product
debe ser tan fácil (actualmente solo tuplas)
De no ser así, escriba su propio método toString
, por lo general es bastante trivial ...
- 1. PHP: colores en var_dump (Ubuntu)
- 2. php var_dump() vs print_r()
- 3. ¿xdebug embellece var_dump?
- 4. Pregunta sobre la salida var_dump
- 5. Demasiada información con var_dump en symfony2 doctrine2
- 6. Xdebug no funciona con var_dump()
- 7. cakephp registrar una matriz como var_dump
- 8. Diferencia entre var_dump, var_export e print_r
- 9. Var_dump ilegible en Firebug cuando xdebug está habilitado
- 10. ¿Hay algo así como var_dump de PHP en c/C++?
- 11. ¿Existe un equivalente para var_dump (PHP) en Javascript?
- 12. Scala AST en Scala
- 13. ¿Cuál es el equivalente .NET de PHP var_dump?
- 14. ¿Cómo puedo usar var_dump + output buffering sin errores de memoria?
- 15. ¿Por qué var_dump a Doctrine Objects mata mi Apache?
- 16. ¿Cuál es el equivalente Java de PHP var_dump?
- 17. difícil de entender print_r/var_dump para el objeto
- 18. Ocultar campos de clases específicas de print_r o var_dump
- 19. Objeto Scala scala
- 20. php var_dump ($ object) o print_r ($ object) en un archivo de registro
- 21. Buscando una manera fácil de analizar var_dump (PHP) en objetos grandes
- 22. ¿Hay un equivalente print_r o var_dump en Ruby/Ruby on Rails?
- 23. ¿Cuál es el equivalente de JavaScript de var_dump o print_r en PHP?
- 24. Xdebug cargado correctamente en Ubuntu pero el manejo de var_dump/error no ha sido anulado
- 25. ¿Cómo crear una matriz a partir de la salida de var_dump en PHP?
- 26. No se puede obtener el formato Xdebug var_dump trabajo en mi ubuntu
- 27. sobreescribir métodos en Scala
- 28. Unimporting en Scala
- 29. iniciando sesión en scala
- 30. Compilación condicional en Scala
y cómo lo hace una visualización de todas las variables en ¿el entorno? –