我想创建一个函数来检查是否可以迭代Any
类型的变量。Scala:测试是否可以迭代任何变量
def checkIterable(v: Any): Boolean = {
// match with something?
}
然后,我将能够使用它像:
if (checkIterable(something)) {
for (s <- something) {
// do something with each element s of something
}
}
这应该Array
类型,List
,Seq
的变量返回true,Iterable
,基本上任何类型的定义foreach
功能(似乎并不像我应该测试的功能的存在,除非它是唯一可能的方式...)
这很有道理,因为'Array'不是'Iterable'。也许,如果你解释了你真正想要做的事情,而是从描述非工作解决方案开始,我们可能会有更多的帮助。 – Dima
检查它的一种方法是使用'v.isInstanceOf [Iterable]',但是,正如@Dima所说,如果你更清楚你想要做什么,会更好。 – Eduardo
为什么你首先有一个'Any'? – Ryan