Scala语言函数式编程数组转换错误

2023/07/12 posted in  开发技术

在使用scala函数式编程语言写对应的代码的时候,使用数组相关的知识,出现了转换的错误,不能正确输出对应的数组内容。

1 问题:

代码:

//多维数组  
val a17 = Array.ofDim[String](2, 2)  
for (i <- 0 to 1) {  
  for (j <- 0 to 1) {  
    a17(i)(j) = (i + j).toString  
  }  
}  
println("a17多维数组是:" + a17)
//正确方式
println("a17的正常显示数组为:" + stringOf(a17))

输出的结果是:
a17多维数组是:[[Ljava.lang.String;@77b52d12
对这个结果的解释是:

“[” 表示一维数组  
"[["表示二维数组  
"L"表示一个对象  
"java.lang.String"表示对象的类型  
"@"后面表示该对象的HashCode

2 解决办法:

1、直接在对应的数组后面跟上一个方法,Array.toString(x),就能将对应的数组显示出来了。
2、导入一个打印美化包
import scala.runtime.ScalaRunTime.stringOf
在引包以后,调用stringOf(x) 方法,就能实现对数组的打印了 ,这个方法对多维数组也是生效的。
3、使用mkString 方法,这个对一维数组是有效的,多维数组不能生效,使用方法 x.mkString(",")

本文作者:redtea 红茶的博客
本文链接:https://redtea.top/16964281020029.html
版权声明:本文采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可,非商业转载及引用请注明出处(作者、原文链接),商业转载请联系作者获得授权。