Подтвердить что ты не робот

Как распечатать Список чего-нибудь в Scala?

В настоящий момент у меня есть метод, который печатает Ints

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

Как мне изменить это, чтобы он был достаточно гибким, чтобы распечатать список чего-нибудь?

4b9b3361

Ответ 1

Так как println работает на что угодно:

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

Или даже лучше, поэтому вы не ограничены List s:

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

Ответ 2

Вам не нужен выделенный метод, необходимая функциональность уже присутствует в классах коллекции:

println(myList mkString "\n")

mkString имеет две формы, поэтому при a 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

Ответ 3

Вам просто нужно сделать общий метод

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

Ответ 4

def printList[T](args: List[T]) = args.foreach(println)

Ответ 5

Или рекурсивная версия для практики:)

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 )

Вывод:

 (
 )
 (
 )