问题 1 ) 我正在尝试在 Scala 中从 YQL 中提取货币。下面提到的 getXML 接受 REST URL 并返回 xml 节点。在我的主代码中,如果失败后需要等待 10000 毫秒后再次调用 getXML。
请建议如何实现,因为我试图在失败代码中进行 getXML,但无法编译。
def getXML(url: String): Try[scala.xml.Node] =
{
Try(XML.loadString(Source.fromURL(new URL(url)).mkString))
}
val nodes = getXML(ccyurl) match {
case Success(node) => node
case Failure(f) => {
Thread.sleep(10000)
/****/
}
问题2) 还有一个问题。我是新手,尤其是在Scala编程方面,所以有些困难。 我定义了一个函数
def exchangelookup(s :String): Try[String] = Try(exchange_currency_map(s))
它的使用方式如下所示,它是数组中的第4个项目。
exchangelookup(Cols(0).takeRight(3)) match {case Success(x) => x
case Failure(x) => FileParserlogger.error(x.getMessage()) } , //ExchangeCurrency 4
但是当我将其作为静态数组(4)中的另一个数组使用时,我会得到“类型不匹配;找到:Any,需要:String”
val fxconversion = fxconvertor(getexchange(nodes,static(10)),getexchange(nodes, exchange_to_real_ccy_map.getOrElse(static(4),static(4))))
提前感谢。