这是一个“从Julia开始”的问题。 我读了一些基础的Julia函数教程,但仍然不理解双括号的意义,就像在这个例子中(来自JuliaReinforcement RandomWalk1D): function (env::RandomWalk1D)(action) env.pos = max(min(env.pos + env.actions[action], env.N), 1) end 在这里,双括号(没有函数名称)是什么意思?什么时候以及如何调用此函数?谢谢!
我假设你指的是可以在这里找到的包源代码。 这种定义方式创建了一个函数对象。可以参见这里文档中的说明。 其思想很简单。你希望像调用函数一样调用一个值。下面是一个最小示例: julia> struct A v end julia> (x::A)() = x.v julia> a = A(100) A(100) julia> a() 100 请注意,在此示例中a是一个值,但您仍可以像调用函数一样使用a()来调用它。如果有不清楚的地方,请评论,我可以进行扩展。