arrays - Scala 数组与向量

标签 arrays scala vector

Scala 新手...我很困惑

object myApp extends App {
  println("Echo" + (args mkString " "))
}

"args"是 Array[String] 类型,但是在 scaladoc 中,Array 没有这样的方法。 mkString 是 Vector 的一种方法,但我没有看到两者之间有任何继承联系。那么为什么我们可以在 args 上使用 mkString 方法呢?

最佳答案

我不是 Scala 专家(远非如此!)但我认为答案是隐式转换(参见 scala.Predef)和 WrappedArray.scala。

特别是,Predef 具有以下隐式转换:

implicit def genericWrapArray [T] (xs: Array[T]): WrappedArray[T] 

WrappedArray 有一个 mkString 方法。当 scala 无法在 Array 上找到 mkString 方法时,它会寻找到一个类型的隐式转换。

http://www.scala-lang.org/api/current/scala/Predef $.html

http://www.scala-lang.org/api/current/scala/collection/mutable/WrappedArray.html

关于arrays - Scala 数组与向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6131309/

相关文章:

php - 按 ID 分组并显示来自 mysql 的所有结果

php - 如何将字符串数组转换为 PHP 中的关联数组?

scala - 如何从 Enumerator/Iteratee 获取结果?

performance - MATLAB 中的矢量化循环

javascript - 堆栈和递归函数

scala - 尝试使用Shapeless递归将案例类转换为异构列表的怪异行为

scala - Akka 在 Actor 之外进行日志记录

c++ - 为什么当我创建一个包含 N 个对象的 vector 时,CTOR 没有被调用 N 次?

r - 如何将 "jitter"转换为数字向量?

c - 你如何将从文件中读取的字符串拆分为C中的数组