我正在寻找Iterable
,它可以被迭代而不会产生副作用。
例如,我要注释以下参数x
:
def foo(x: NoSideEffectIterable[int]):
for i in range(10):
for xx in x: # x is iterated 10 times here
print(i*xx)
Iterable
不适合,因为x
被多次迭代Sequence
不适合,因为x
的顺序无关紧要如何注释x
?
答案 0 :(得分:1)
没有注释。这不是类型系统可以表达的概念。 if (view instanceof EditText) {
EditText editText = (EditText) view;
// do what you want with EditText
}
else if (view instanceof TextView) {
TextView textView = (TextView) view;
// do what you want with textView
}
else if ..
是您最好的选择。如果您想更严格一些,可以使用Iterable
,但是Collection
表示的要求比您想要的要少,而Iterable
表示的要求却更多。
答案 1 :(得分:0)
尝试使用Iterator[int]
。 Python中的迭代器是可迭代的,可在您迭代一次之后使用。希望对您有帮助