這是繼無限循環,Clojure中這樣的事情就好了科特林無限循環的遞歸
tailrec fun passHeaders (xH: List<Int>)
{
while (xH.isNotEmpty())
{
passHeaders(xH.drop(1))
}
}
這是繼無限循環,Clojure中這樣的事情就好了科特林無限循環的遞歸
tailrec fun passHeaders (xH: List<Int>)
{
while (xH.isNotEmpty())
{
passHeaders(xH.drop(1))
}
}
List.drop
不改變List
,而是產生一個新的List
實例。因此,你是while
循環是無限的。
它不是,但產生新的 –
您不提供基本案例,這就是爲什麼。因爲在每次撥打passHeaders
時,xH
是自己的副本,因此永遠不會是空的。請記住,當您撥打drop()
時,會創建一個新列表。
while (xH.isNotEmpty())
它說的是「,而我的xH
副本是不是空的,叫passHeaders
在另一方面:。
if (xH.isNotEmpty())
可能會做你想要什麼
謝謝,這是解決問題。 –
爲什麼你期望這個循環終止? –
爲什麼所有的反對票? – voddan