Julia風格指南says功能哪些「修改他們的參數」應該有他們的名字結尾!
。朱莉婭功能命名:我應該什麼時候附加一個爆炸?
然而,怎麼樣:那些修改它們的參數,但在返回之前他們返回到原來的狀態
的功能呢?
返回
Task
哪些函數在執行時修改參數?函數返回這樣一個
Task
,但是當它完成時,參數將被恢復到它們的原始狀態?
他們的名字應該以!
結尾?
作爲一個例子,考慮this module使用Knuth的Dancing Links Algorithm發現exact covers。它實現了一個類型CoverSet
可與子集來填充,然後查詢用於第一確切蓋:
set = CoverSet()
push!(set, [1, 2])
push!(set, [2, 3])
push!(set, [3, 4])
push!(set, [4, 1])
find_exact_cover(set) # returns [1, 3]
的find_exact_cover
功能暫時修改數據在set
同時尋找一種解決方案,而是由時間find_exact_cover
回報, set
將處於其原始狀態。它應該被命名爲find_exact_cover!
而不是?
同樣,exact_cover_producer
返回生產的所有確切蓋一個Task
,但是當Task
完成後,將set
已經恢復:
for cover in exact_cover_producer(set)
println(cover) # prints [1,3] and [2,4]
end
# By now, set is restored.
它應該是exact_cover_producer!
?
我知道這可能被認爲是主觀的,所以讓我澄清一下,我要求:從我想知道是否有在茱莉亞社會各界對這一公約,最好也範例標準庫或任何使用任一風格的軟件包。
當我看到一個功能,而無需在朱莉婭爆炸我以爲我傳遞的所有參數會後不變通話已完成。功能內發生的事情不是我關心的。 – 2014-11-26 00:31:19