2011-07-10 70 views

回答

21

由於println作品上的任何內容:

def printList(args: List[_]): Unit = { 
    args.foreach(println) 
} 

甚至更​​好,這樣你就不會侷限於List S:

def printList(args: TraversableOnce[_]): Unit = { 
    args.foreach(println) 
} 
+8

爲什麼使用存在類型('_')如果喲由於協變,你可以使用'Any'嗎?我認爲'TraversableOnce [Any]'更清晰。 –

+1

mkString是要走的路 – Diego

8

你只需要提出一些通用的方法

def printList[A](args: List[A]): Unit = { 
    args.foreach(println) 
} 
3
def printList[T](args: List[T]) = args.foreach(println) 
40

你並不需要一個專門的方法,所需要的功能已經是正確的,在集合類:

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

或遞歸版本練習:)

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) 

輸出:

(
) 
(
)