对Julia中一维数组的所有元素求和

Sat*_*ato 1 arrays sum julia

这是一个非常基本的问题,但是我找不到与此问题相关的问题。假设有一个类型为的数组Array{Int64,1},我想对数组中的所有元素求和。我在网上找到的语法只是sum在数组上使用该函数,如下所示:

sum([i for i in 1:999 if i%3==0 || i%5==0])
Run Code Online (Sandbox Code Playgroud)

但是我收到一条错误消息

MethodError: objects of type Int64 are not callable
Run Code Online (Sandbox Code Playgroud)

当我在stackoverflow帖子中尝试语法求和多维数组时,也会出现该消息。那么这是什么问题呢?

DNF*_*DNF 6

这个对我有用:

julia> sum([i for i in 1:999 if i%3==0 || i%5==0])
233168
Run Code Online (Sandbox Code Playgroud)

尝试重新启动Julia。您sum以前可能曾经将其用作变量,但现在编译器无法将其识别为函数。

另外,最好避免分配。不必创建数组,只需使用生成器即可:

julia> sum(i for i in 1:999 if i%3==0 || i%5==0)
233168
Run Code Online (Sandbox Code Playgroud)

后者对我来说快两倍以上,零分配。