Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
List Scala-如何获取列表元素_List_Scala_Printing - Fatal编程技术网

List Scala-如何获取列表元素

List Scala-如何获取列表元素,list,scala,printing,List,Scala,Printing,我正在尝试从列表中获取元素: data =List(("2001",13.1),("2009",3.1),("2004",24.0),("2011",1.11)) 有什么帮助吗?任务是分别打印字符串和数字,如: print(x._1+" "+x._2) 但这不起作用。对于字符串,请使用 scala> val data =List(("2001",13.1),("2009",3.1),("2004",24.0),("2011",1.11)) data: List[(java.lang.

我正在尝试从列表中获取元素:

data =List(("2001",13.1),("2009",3.1),("2004",24.0),("2011",1.11))
有什么帮助吗?任务是分别打印字符串和数字,如:

print(x._1+" "+x._2) 
但这不起作用。

对于字符串,请使用
scala> val data =List(("2001",13.1),("2009",3.1),("2004",24.0),("2011",1.11))
data: List[(java.lang.String, Double)] = List((2001,13.1), (2009,3.1), (2004,24.0), (2011,1.11))

scala> data.foreach(x => println(x._1+" "+x._2))
2001 13.1
2009 3.1
2004 24.0
2011 1.11
List((1,"aoeu")).foreach(((
_
:Tuple2[String,
_
])._1) andThen print)
对于数字,使用

对于字符串,使用
List((1,"aoeu")).foreach(((
_
:Tuple2[String,
_
])._1) andThen print)
List(("aoeu",13.0)).foreach(((
_
:Tuple2[
_
,Double])._2) andThen print)

对于数字,使用

函数式编程的一个良好实践是尽可能多地对不可变对象进行无副作用的转换

List(("aoeu",13.0)).foreach(((
_
:Tuple2[
_
,Double])._2) andThen print)
这意味着(在本例中)可以将元组列表转换为字符串列表,然后将副作用(println)限制在最后的一步

val data = List(("2001",13.1),("2009",3.1),("2004",24.0),("2011",1.11))
val lines = data map { case(a,b) => a + " " + b.toString }
println(lines mkString "\n") 

函数式编程的一个良好实践是尽可能多地对不可变对象进行无副作用的转换

这意味着(在本例中)可以将元组列表转换为字符串列表,然后将副作用(println)限制在最后的一步

val data = List(("2001",13.1),("2009",3.1),("2004",24.0),("2011",1.11))
val lines = data map { case(a,b) => a + " " + b.toString }
println(lines mkString "\n") 

我会使用模式匹配,这会产生一种编程模式,这种模式可以更好地扩展更大的元组和更复杂的元素:


data.foreach{case(b,c)=>println(b+“”+c)}

我会使用模式匹配,这会产生一种编程模式,该模式对于较大的元组和更复杂的元素具有更好的伸缩性:


data.foreach{case(b,c)=>println(b+“”+c)}

上帝啊,原谅我忘记了foreach。。。谢谢你的帮助!上帝啊,原谅我忘记了每一件事。。。谢谢你的帮助
((:Tuple2[String,])。\u1)然后print
最好写成
x=>print(x.。\u1)
,甚至
case(a,b)=>print a
。请让类型推断器为您完成所有工作,这不是Java
((:Tuple2[String,])。\u1)然后print
最好写成
x=>print(x.。\u1)
,甚至
case(a,b)=>print a
。请让类型推断器为您完成所有工作,这不是Java!喜欢
productIterator
,11/10的可伸缩性可圈可点:)但问题是为什么产品本身没有mkString?我有很多这样的问题,Landei。也许有一天我会列一个清单,然后把它们发送给Scala的邮件列表。还有,为什么mkString不被称为
join
,这似乎是一种标准?很久以前,邮件列表上有一个关于
mkString
的长讨论,有很多不同的名称建议。由于没有明确的最爱,兼容卡赢得了胜利。喜欢
productIterator
,11/10的可扩展性积分:)但问题是为什么产品本身没有mkString?我有很多这样的问题,Landei。也许有一天我会列一个清单,然后把它们发送给Scala的邮件列表。还有,为什么mkString不被称为
join
,这似乎是一种标准?很久以前,邮件列表上有一个关于
mkString
的长讨论,有很多不同的名称建议。因为没有明确的最爱,兼容卡赢了。这不是我上学期考试为自己做的作业。好吧,但也许在某种程度上你们可以把它解释为家庭作业。这不是家庭作业,我上学期考试时为自己做的。但也许你可以把它解释成家庭作业。