所以對於拆分成數位的,我發現這個代碼流迭代有人可以提供的這個示例代碼演練
def split(n: Int) = if (n == 0) List(0) else {
(Stream.iterate(n)(_/10)takeWhile(_!=0)map(_%10)toList) reverse
}
其作品,但我不能對自己如何解釋計算流程。任何人都可以更深入地瞭解它需要走中間步驟從
split(123)
List[Int] = List(3,2,1)
它似乎相當簡單,但讀取的方法聲明,併力圖將與計算器的例子我沒能重新創建自己的結果。
在斯卡拉特別感興趣 - 每個人都可以有自己的意見,但我喜歡的語言,並希望在此進一步的信息。 – Barry
@Barry我會強烈建議不使用中綴/後綴語法的非運營商的方法。這是至少有一點更容易地看到發生了什麼事情,如果你寫的'Stream.iterate(N)(_/10).takeWhile(_!= 0).MAP(_%10).toList.reverse'。 –
@TravisBrownt謝謝,這是有道理的 - 我只是使用了我發現的那個舊郵件列表問題的代碼,但是我同意可讀性我更喜歡你寫的東西。 – Barry