目前,我有一個打印INTS如何在Scala中打印任何東西的列表?
def printList(args: List[Int]): Unit = {
args.foreach(println)
}
如何修改這一所以它非常靈活,能夠打印任何一個列表的方法?
目前,我有一個打印INTS如何在Scala中打印任何東西的列表?
def printList(args: List[Int]): Unit = {
args.foreach(println)
}
如何修改這一所以它非常靈活,能夠打印任何一個列表的方法?
由於println
作品上的任何內容:
def printList(args: List[_]): Unit = {
args.foreach(println)
}
甚至更好,這樣你就不會侷限於List
S:
def printList(args: TraversableOnce[_]): Unit = {
args.foreach(println)
}
你只需要提出一些通用的方法
def printList[A](args: List[A]): Unit = {
args.foreach(println)
}
def printList[T](args: List[T]) = args.foreach(println)
你並不需要一個專門的方法,所需要的功能已經是正確的,在集合類:
println(myList mkString "\n")
mkString
有兩種形式,所以對於一個List("a", "b", "c")
:
myList.mkString("[",",","]") //returns "[a,b,c]"
myList.mkString(" - ") // returns "a - b - c"
//or the same, using infix notation
myList mkString ","
我的例子只是用\n
作爲分隔符並將結果字符串傳遞給println
或遞歸版本練習:)
1 - 聲明您的列表
val myCharList: List[Char] = List('(',')','(',')')
2 - 定義你的方法
def printList(chars: List[Char]): Boolean = {
if (chars.isEmpty) true //every item of the list has been printed
else {
println(chars.head)
printList(chars.tail)
}
}
3 - 調用方法
printList(myCharList)
輸出:
(
)
(
)
爲什麼使用存在類型('_')如果喲由於協變,你可以使用'Any'嗎?我認爲'TraversableOnce [Any]'更清晰。 –
mkString是要走的路 – Diego