在Julia中重新指定对象数组中的值

在Julia中重新指定对象数组中的值,julia,Julia,我是朱莉娅语言的新学习者。我定义了一个对象数组,如下所示: type a b :: Int c :: Int end d = Array{a}(3) 这将返回一个包含垃圾值的3元素数组{a,1}。我想给它赋值。我已经编写了以下代码,但它不起作用 for i = 1:3 d[i].b = i d[i].c = i^2 end 任何建议都将不胜感激。要初始化a必须调用构造函数。此外,还可以使用构造阵列: type a b :: Int c

我是朱莉娅语言的新学习者。我定义了一个对象数组,如下所示:

type a
     b :: Int
     c :: Int
end
d = Array{a}(3)
这将返回一个包含垃圾值的3元素数组{a,1}。我想给它赋值。我已经编写了以下代码,但它不起作用

for i = 1:3
    d[i].b = i
    d[i].c = i^2
end

任何建议都将不胜感激。

要初始化
a
必须调用构造函数。此外,还可以使用构造阵列:

type a
     b :: Int
     c :: Int
end

d=[a(i,i^2) for i in 1:3]

3-element Array{a,1}:
 a(1, 1)
 a(2, 4)
 a(3, 9)

还请注意,
type
已被弃用,最好将复合类型声明为:

struct Foo ... end

见官方文件:和


更新(你的评论):是的,你可以使用任何功能

function f() # can also use any argument 
         # long computation... for demo random number
         b=rand(Int8)
         c=rand(Int8)
         return a(b,c)
       end
f (generic function with 2 methods)

julia> d=[f() for i in 1:3]
3-element Array{a,1}:
 a(80, 104)
 a(98, -62)
 a(-37, 17)

谢谢你的回复。为了演示的目的,我们考虑一个简单的例子。实际上,我们需要做更长的手术。请注意,是否可以使用返回类型为a的对象的函数执行相同的操作?
function f() # can also use any argument 
         # long computation... for demo random number
         b=rand(Int8)
         c=rand(Int8)
         return a(b,c)
       end
f (generic function with 2 methods)

julia> d=[f() for i in 1:3]
3-element Array{a,1}:
 a(80, 104)
 a(98, -62)
 a(-37, 17)