如何向函子中添加感叹号字符?

3

按照惯例,我们将感叹号字符!添加到任何修改其参数的函数名称中,因此对于以下代码示例,我们应该将!添加到函数名中吗?

mutable struct Foo
    a::Int
end

(foo::Foo)(val) = foo.a = val

f = Foo(1)  # f.a = 1
f(10)       # f.a = 10

简而言之,最后一行可以称为 f!(10) 吗?我只是好奇。谢谢。
1个回答

3
这里的“call”和您的变量名称一样。因此,如果您想让它包含一个!,您需要将变量命名为f!
julia> f! = Foo(1)  # f.a = 1
Foo(1)

julia> f!(4)
4

!字符并没有什么神奇的地方,它只是标识符的一部分。因此,您必须将!放置在实际名称中的内部就像处理函数一样。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接