Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在交互式Scala控制台中打印整个结果_Scala_Read Eval Print Loop - Fatal编程技术网

在交互式Scala控制台中打印整个结果

在交互式Scala控制台中打印整个结果,scala,read-eval-print-loop,Scala,Read Eval Print Loop,当我在Scala交互控制台中键入内容时,控制台将打印语句的结果。如果结果太长,控制台将对其进行裁剪(向右滚动查看): 如何在不进行裁剪的情况下,为任何给定对象(不仅仅是集合或数组)打印相同或等效的输出?试试看 x map println 或 结果不是“裁剪”,只是println调用java.lang.Array.toString()(因为scala.Array是一个java数组) 具体来说,Arrays定义了一个与Object一起工作的toString重载,它在每个元素上调用java.lang

当我在Scala交互控制台中键入内容时,控制台将打印语句的结果。如果结果太长,控制台将对其进行裁剪(向右滚动查看):

如何在不进行裁剪的情况下,为任何给定对象(不仅仅是集合或数组)打印相同或等效的输出?

试试看

x map println

结果不是“裁剪”,只是
println
调用
java.lang.Array.toString()
(因为
scala.Array
是一个java数组)

具体来说,
Arrays
定义了一个与
Object
一起工作的
toString
重载,它在每个元素上调用
java.lang.Object
toString
实现。这样的实现会打印对象的引用,因此最终

[Lscala.Tuple2;@4de71ca9
它是一个
数组
,包含对
scala.Tuple2
对象的引用
4de71ca9

这已经在多年前讨论过了


在数组的特定情况下,您只需执行以下操作

println(x.mkString("\n"))


更新 要回答上次编辑,可以设置REPL打印的字符串的最大长度

scala> :power
** Power User mode enabled - BEEP WHIR GYVE **
** :phase has been set to 'typer'.          **
** scala.tools.nsc._ has been imported      **
** global._, definitions._ also imported    **
** Try  :help, :vals, power.<tab>           **

scala> vals.isettings.maxPrintString = Int.MaxValue
vals.isettings.maxPrintString: Int = 2147483647
scala>:电源
**电源用户模式已启用-哔哔声**
**:相位已设置为“typer”**
**scala.tools.nsc.\已导入**
**全局。\定义。\也已导入**
**尝试:帮助、:VAL、电源**
scala>vals.isettings.maxPrintString=Int.MaxValue
VAL.isettings.maxPrintString:Int=2147483647
试试这个

scala> :power
Power mode enabled. :phase is at typer.
import scala.tools.nsc._, intp.global._, definitions._
Try :help or completions for vals._ and power._

scala> vals.isettings.maxPrintString
res9: Int = 800

scala> vals.isettings.maxPrintString = 10000
vals.isettings.maxPrintString: Int = 10000

Scala控制台正在进行裁剪。请看我的编辑。谢谢-这是我最初的问题,但我意识到这个问题有点误导。那里的
println(x)
只是为了表明这个答案不起作用。在这个副本中有一些建议:
x foreach println
println(x.deep)
scala> :power
** Power User mode enabled - BEEP WHIR GYVE **
** :phase has been set to 'typer'.          **
** scala.tools.nsc._ has been imported      **
** global._, definitions._ also imported    **
** Try  :help, :vals, power.<tab>           **

scala> vals.isettings.maxPrintString = Int.MaxValue
vals.isettings.maxPrintString: Int = 2147483647
scala> :power
Power mode enabled. :phase is at typer.
import scala.tools.nsc._, intp.global._, definitions._
Try :help or completions for vals._ and power._

scala> vals.isettings.maxPrintString
res9: Int = 800

scala> vals.isettings.maxPrintString = 10000
vals.isettings.maxPrintString: Int = 10000