感叹号在功能名称后的含义是什么?

ReD*_*ReD 6 julia

我看到了这样的功能

function operator!(c::Matrix, out::Matrix)
    ......
end
Run Code Online (Sandbox Code Playgroud)

!意味着什么?

Gni*_*muc 17

在Julia中,附加!到修改其参数的函数名称是一种约定.原因是Julia函数参数是按共享传递的,没有这个约定,要知道函数是否会改变输入参数的内容并不容易.

  • @ReD `operator!` 是如何实现的? (2认同)
  • >为什么程序员添加了该函数的另一个副本,没有!定义功能后?因为功能没有!不可变 - 也就是说,它不会改变任何输入.请注意,它创建了一个单独的矩阵(通过类似的(V)),它在运算符!()中变异,但它不会返回它.如果调用operator(),则不会改变任何输入.如果你调用operator!(),你的至少一个输入(即第二个)将被改变. (2认同)