我想創建一個函數來檢查是否可以迭代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