如何将 bang 字符添加到函子?
How to add the bang character to functors?
按照惯例,我们在任何会改变其参数的函数名称中添加一个爆炸字符 !
,那么对于下面的代码示例,我们是否应该在函子名称中添加一个 !
?
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)
吗?我只是好奇。谢谢
这里的调用和你的变量名一样。所以如果你想让它包含一个 !
,你必须将你的变量命名为 f!
:
julia> f! = Foo(1) # f.a = 1
Foo(1)
julia> f!(4)
4
!
字符没有什么神奇之处,它只是标识符的一部分。所以你必须把 !
放在 里面 实际的名字, 完全 就像你对函数所做的那样。
按照惯例,我们在任何会改变其参数的函数名称中添加一个爆炸字符 !
,那么对于下面的代码示例,我们是否应该在函子名称中添加一个 !
?
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)
吗?我只是好奇。谢谢
这里的调用和你的变量名一样。所以如果你想让它包含一个 !
,你必须将你的变量命名为 f!
:
julia> f! = Foo(1) # f.a = 1
Foo(1)
julia> f!(4)
4
!
字符没有什么神奇之处,它只是标识符的一部分。所以你必须把 !
放在 里面 实际的名字, 完全 就像你对函数所做的那样。