朱莉亚风格指南规定,“修改其参数”的函数应以
然而,以下情况如何处理:
作为一个例子,考虑使用Knuth的Dancing Links算法找到精确覆盖的模块 CoverSet。它实现了一种类型
!
结尾。然而,以下情况如何处理:
修改其参数,但在返回之前将其恢复到原始状态的函数?
返回一个
Task
,当执行时修改参数的函数?返回这样一个
Task
,但当它完成时,参数将被恢复到其原始状态?
!
结尾吗?
作为一个例子,考虑使用Knuth的Dancing Links算法找到精确覆盖的模块 CoverSet。它实现了一种类型
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!
吗?
我知道这可能被认为是主观的,所以让我澄清一下我的要求:我想知道Julia社区是否有关于这个的约定,并且最好也提供标准库或任何使用其中任一风格的包的示例。