Как распечатать Список чего-нибудь в Scala? В настоящий момент у меня есть метод, который печатает Ints def printList(args: List[Int]): Unit = { args.foreach(println) } Как мне изменить это, чтобы он был достаточно гибким, чтобы распечатать список чего-нибудь? Ответ 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 ) Вывод: ( ) ( )
Ответ 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) }
Ответ 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 ) Вывод: ( ) ( )