加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-16 08:50:32 所属栏目:安全 来源:网络整理
导读:当我在 Scala交互式控制台中输入内容时,控制台会打印语句的结果.如果结果太长,控制台会裁剪它(向右滚动以查看它): scala Array.fill[Byte](5)(0)res1: Array[Byte] = Array(0,0)scala Array.fill[Byte](500)(0)res2: Array[Byte] = Array(0,...scala "a"*50
当我在 Scala交互式控制台中输入内容时,控制台会打印语句的结果.如果结果太长,控制台会裁剪它(向右滚动以查看它):

scala> Array.fill[Byte](5)(0)
res1: Array[Byte] = Array(0,0)

scala> Array.fill[Byte](500)(0)
res2: Array[Byte] = Array(0,...

scala> "a"*5000
res3: String = aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...

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

解决方法

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

具体来说,Arrays定义了一个与Object一起使用的toString重载,它在每个元素上调用java.lang.Object的toString实现.这样的实现打印了对象的引用,所以你最终得到了

[Lscala.Tuple2;@4de71ca9

这是一个包含scala.Tuple2对象的引用4de71ca9的Array.

这已在this ticket年前讨论过.

在数组的特定情况下,您可以简单地做

println(x.mkString("n"))

要么

x foreach println

要么

println(x.deep)

更新

要回答上次编辑,可以设置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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读