对数组调用 toString() 返回的是对象在内存中的地址,而不是数组内容的字符串表示。 这几乎从来不是您希望得到的结果。

要正确获取数组的字符串表示,请使用:

示例(显式 toString):


  fun main() {
      val a = arrayOf(1, 2, 3)
      val s = a.toString() // 错误
  }

在应用快速修复后:


  fun main() {
      val a = arrayOf(1, 2, 3)
      val s = a.contentToString() // 正确
  }

示例(字符串模板中的隐式 toString):


  fun main() {
      val a = arrayOf(1, 2, 3)
      println("Array: $a") // 错误 - 打印地址
  }

在应用快速修复后:


  fun main() {
      val a = arrayOf(1, 2, 3)
      println("Array: ${a.contentToString()}") // 正确 - 打印 [1, 2, 3]
  }

示例(多维数组):


  fun main() {
      val a2d = arrayOf(arrayOf(1, 2), arrayOf(3, 4))
      val s = a2d.toString() // 错误
  }

在应用快速修复后:


  fun main() {
      val a2d = arrayOf(arrayOf(1, 2), arrayOf(3, 4))
      val s = a2d.contentDeepToString() // 正确 - 打印 [[1, 2], [3, 4]]
  }