Mic*_*ael 5 scala scala-collections
如何使用Scala打印列表中的第一个元素?
例如在Python中我可以写:
>>>l = [1,2,3,4]
>>>one = l[0]
>>>print one
Run Code Online (Sandbox Code Playgroud)
我怎么能在Scala上做到这一点
谢谢.
基本上,你的python代码相当于:
scala> val l = 1 :: 2 :: 3 :: 4 :: Nil
l: List[Int] = List(1, 2, 3, 4)
scala> val one = l.head
one: Int = 1
scala> println(one)
1
Run Code Online (Sandbox Code Playgroud)
(在scala解释器中运行.)
这是关于Scala列表的文档.
它被问为一个辅助问题«如何显示每个元素?».
这是一个使用模式匹配的递归实现:
scala> def recPrint(xs: List[Int]) {
| xs match {
| case Nil => // nothing else to do
| case head :: tail =>
| println(head)
| recPrint(tail)
| }}
recPrint: (xs: List[Int])Unit
scala> recPrint(l)
1
2
3
4
Run Code Online (Sandbox Code Playgroud)
正如David Weber在评论中指出的那样,如果你不能使用递归算法来访问列表的元素,那么你应该考虑使用另一个容器,因为访问a的第i个元素List需要O(N).
正如Hiura所说,或者像这样:
object ListDemo extends App {
val lst = List(1, 2, 3)
println(lst(0)) // Prints specific value. In this case 1.
// Number at 0 position.
println(lst(1)) // Prints 2.
println(lst(2)) // Prints 3.
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8374 次 |
| 最近记录: |