我需要创建一个返回List [List [Option [Double [Double]]]]的函数,其中该函数采用股市交易代码的List [String],并且该函数必须查看几年的范围,因此例如Range [2000,2019,1]。
该函数将调用另一个函数:
def price(symbol: String,year: Int) : Option[Double] = ...
这将返回Option [Double] Some(double)或None。因此,假设我要创建的函数采用List(“ GOOG”,“ AAPL”)和Range [2010,2013,1],结果应类似于:
List(List(Option for Google 2010,Option for Apple 2010),List(Option for Google 2011,Option for Apple 2011),List(Option for Google 2012,Option for Apple 2012)).
我不允许在代码中使用'var',只能使用'val',这当然意味着一旦声明就不能进行修改。
所以我要问的是当我不知道List [String]或Range中有多少个值时,如何创建此List [List [Option [Double]]]。我假设不可能在for循环中将其点起来,并且必须全部在列表声明期间发生。
到目前为止,我唯一能想到的就是按照以下方式做点事情:
val returnList : List[List[Option[Double]]] = List(x => rangeIn.foreach(List(y => symbolsIn.foreach(price(y,x)))))