課程
/云計算&大數據
/大數據
/Scala程序設計—基礎篇
怎么寫成尾遞歸呢?
2019-07-07
源自:Scala程序設計—基礎篇 6-1
正在回答
def?walk2(list2:List[Int],string:String):String={ ????println(s"list2=?${list2},string=${string}") ?????if(list2.isEmpty)?string+"啊哈哈,變成空了吧" ?????else ????walk2(?list2.tail,string?+?list2.head?+?"JJ") } walk2(a,"")
就是尾遞歸啊,你第一次執行else后變成了1 List(2,3,4)(中間有空格),然后你a判斷又不是空集合,就一直執行了,知道a集合變為空,因為變為空,才沒有尾部跟頭部概念,才停止運行
不是尾遞歸,沒有加@annotation.tailrec編譯器不會按尾遞歸處理
舉報
Scala基礎編程入門視頻教程,能夠編寫簡單的Scala代碼
2 回答為什么這個遞歸不溢出
1 回答最后一小節快速排序 性能是正常快速排序的一半吧
1 回答請問下面這個格式是什么意思
1 回答在cmd中鍵入sbt,提示 不是內部或者外部命令,但是scala這個命令在cmd中是可以正常執行的?
1 回答這個視頻有問題 ?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2021-12-09
2020-08-24
就是尾遞歸啊,你第一次執行else后變成了1 List(2,3,4)(中間有空格),然后你a判斷又不是空集合,就一直執行了,知道a集合變為空,因為變為空,才沒有尾部跟頭部概念,才停止運行
2019-07-13
不是尾遞歸,沒有加@annotation.tailrec編譯器不會按尾遞歸處理