Я хочу создать функцию, которая проверяет, может ли повторяться переменная типа 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
и Iterable
, в основном любой тип, который определяет foreach
функцию (похоже, я не должен проверять существование этой функции, если это не единственный способ ...)
Это имеет смысл, потому что 'Array' не' Iterable'. Возможно, мы могли бы помочь, если бы вы объяснили, что вы на самом деле пытаетесь сделать, начиная с описания нерабочего решения. – Dima
Один из способов проверки заключается в использовании 'v.isInstanceOf [Iterable]', но, как говорит @Dima, было бы лучше, если бы вы были более откровенными о том, что вы пытаетесь сделать. – Eduardo
Почему у вас есть «Любые» в первую очередь? – Ryan