如何在不初始化的情况下声明一个迭代器? (Kotlin)

很基本的问题,但我仍然不知道如何去做:

我有一个名为iitlistIterator<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()