2015-09-03 46 views
1

我刚刚在Scala中开始使用Python(作为主要语言已经有相当长的一段时间了),并且我无法弄清楚如何遍历方法列表并调用每个方法。Scala中的迭代方法列表

在Python,我会做它:

>>> def a(): 
...  return "a" 
... 
>>> def b(): 
...  return "b" 
... 
>>> c=[a,b] 
>>> for i in c: 
...  i() 
... 
'a' 
'b' 

我如何做同样在Scala中?到目前为止,我有:

scala> def a = { 
    | "a"; 
    | } 
a: String 

scala> def b = { 
    | "b"; 
    | } 
b: String 

scala> val z = List(a,b) 
z: List[String] = List(a, b) 

但我无法迭代这一点。我尝试使用的foreach,但我不能确定如何调用函数

帮助非常感谢

回答

2

它看起来当你添加ab到列表一样,DEF是否并将结果保存在名单

scala> def a = "strA" 
a: String 

scala> def b = "strB" 
b: String 

scala> val z = List(a ,b) 
z: List[String] = List(strA, strB) 

您可以通过将一个_末(我认为这就是所谓的ETA扩展)

scala> val z = List(a _ ,b _) 
z: List[() => String] = List(<function0>, <function0>) 

scala> z.foreach(f => println(f())) // for each function f, call it 
strA 
strB 
变换的方法( def)的功能
+0

这个工程完美...谢谢! – navinpai

0

你可以试试这个方法:

def a = "a" 
def b = "b" 
def c = List(a,b) 
c foreach (println(_)) 

斯卡拉>Ç的foreach(的println(_))

A B