在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)