Tom*_*omG 1 oop functional-programming scala
我是一个探索scala的初学者.以下是Scala函数.
def printArray[K](array:Array[K]) = array.mkString("Array(" , ", " , ")")
val array2 = Array("a", 2, true)
printArray(array2)
Run Code Online (Sandbox Code Playgroud)
输出是Array(a,2,true)
我的怀疑 在这里我们给出了数组类型为K. K意味着什么?这是什么意思吗?fucntion'mkString'如何能够将输出作为数组(a,2,true).基本上我不理解连接部分.
感谢您的帮助.
该mkString方法称为
arr.mkString(prefix, separator, suffix)
Run Code Online (Sandbox Code Playgroud)
将调用toString所有数组元素,前置prefix,然后连接所有将它们分隔开的字符串separator,最后附加suffix.
类型参数Kin printArray[K]被忽略,它可以被存在主义替换.这只是一个名称不好,签名混乱的方法.
当您将任何原始数据类型(如Int)与扩展AnyRef(类似String)的类型一起存储到同一个数组中时,推断最小上限为Any,因此在
printArray(array2)
Run Code Online (Sandbox Code Playgroud)
将K被设置为Any,将mkString上述作品,胶合在一起
Array( prefix
a "a".toString
, separator
2 2.toString
, separator
true true.toString
) suffix
Run Code Online (Sandbox Code Playgroud)
产生字符串Array(a,2,true).