我有一個對象Person
,這個對象經歷了數百萬個獨特的轉換,並且這些轉換必須按順序完成。什麼是在Scala中執行數百萬個獨特轉換的功能方法?
傳統上,我可以這樣做:
var bob = new Person()
birth(bob)
oneYearOld(bob)
middleSchool(bob)
highSchool(bob)
// ...million more transformations
所以我的問題是,我怎麼能在Scala中做功能(無副作用/純函數)?如果我使用val bob
,我是否會創建數百萬個可能導致內存問題的bob副本?
「傳統」?一百萬行代碼?只是想知道,究竟是什麼傳統? 如果你正在談論純粹的功能轉換,你可能不需要其中的一百萬 - 因爲函數是穩定的,你應該能夠計算出最終結果,而不是所有的中間流失。如果它不是純粹的功能,那麼......好吧,常識會佔上風。順便說一句,你寫的方式,'bob'是'var'還是'val'並不重要。你知道嗎? – Dima