朱莉娅功能命名:什么时候应该追加爆炸?

时间:2014-11-22 17:55:05

标签: coding-style julia

朱莉娅风格指南says,其功能是修改他们的论点"应该在!上结束他们的名字。

但是,怎么样:

  1. 修改参数的函数,但在返回之前将它们恢复到原始状态?

  2. 返回Task的函数在执行时修改参数?

  3. 返回此类Task的函数,但完成后,参数将恢复到原始状态?

  4. 他们的名字应该以{{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社区中是否有关于此的约定,理想情况下也是标准库中的例子或任何使用任何一种风格的包。

1 个答案:

答案 0 :(得分:2)

参见例如discussion at Julia commit e7ce4cba44fa3b508fd50e0c3d03f6bc5a7a5032:当前的约定是函数变异,因此如果它改变了!的一个参数,则附加==

(但也有一些理由可以略微扩大定义;参见上述讨论。)