如何在不初始化的情况下声明一个迭代器? (Kotlin)
很基本的问题,但我仍然不知道如何去做:
我有一个名为iit
的listIterator<String>
。
现在我知道如何声明它并给它一个值,但是如果我只是想声明它,并且什么都不用初始化。
怎么办?
编辑:我怎么能初始化一个空list<string>
的迭代器?
如果这个变量是一个属性,你可以使用lateinit
或者Delegates.notNull()
。
private var lateinit iterator1: ListIterator<String> private var iterator2: ListIterator<String> by Delegates.notNull()
但是,如果它是一个局部变量,你不能保持它未初始化。 你可以声明它为一个val
并在稍后对它进行初始化,但是初始化必须在所有的代码路径中进行。
val iterator: ListIterator<String> // Do something. iterator = list.listIterator()
或者你可以使它为空,用null
初始化,然后为它赋值。
var iterator: ListIterator<String>? = null // Do something. iterator = list.listIterator()
正如答案所写,这就是你所要求的。
val iit = listOf<String>().iterator()
但是,从我的角度来看,从一个空的列表中创建一个迭代器,你不再参考是一个难闻的气味。
也许你应该考虑
val l = listOf<String>() val iit = l.iterator()