繁体   English   中英

如何打印 Scala 中的任何内容的列表?

[英]How do I print a List of anything in Scala?

目前我有一个打印 Ints 的方法

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

如何修改它以使其足够灵活以打印任何内容的列表?

您不需要专用方法,所需的功能已经在集合类中:

println(myList mkString "\n")

mkString有两个 forms,所以对于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

由于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)

或者一个递归版本来练习:)

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 )

Output:

 (
 )
 (
 )

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM