朱莉娅风格指南says,其功能是修改他们的论点"应该在!
上结束他们的名字。
但是,怎么样:
修改参数的函数,但在返回之前将它们恢复到原始状态?
返回Task
的函数在执行时修改参数?
返回此类Task
的函数,但完成后,参数将恢复到原始状态?
他们的名字应该以{{1}}?
结尾例如,考虑this module使用Knuth的exact covers查找Dancing Links Algorithm。它实现了一个类型!
,可以填充子集,然后查询第一个确切的封面:
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.
吗?
我知道这可能被认为是主观的,所以让我澄清一下我要求的内容:我想知道Julia社区中是否有关于此的约定,理想情况下也是标准库中的例子或任何使用任何一种风格的包。
答案 0 :(得分:2)
参见例如discussion at Julia commit e7ce4cba44fa3b508fd50e0c3d03f6bc5a7a5032:当前的约定是函数变异,因此如果它改变了!
的一个参数,则附加==
。
(但也有一些理由可以略微扩大定义;参见上述讨论。)