Memory management 如何在Julia中表示引用和值

Memory management 如何在Julia中表示引用和值,memory-management,reference,julia,Memory Management,Reference,Julia,我有一个大的结构数组,我想在更大的数组中创建一个小的结构引用数组。我如何用朱莉娅来表达这一点 例如,下面是我的大量Foo结构数组 struct Foo bah end many_foos = [Foo(i) for i in 1:100000] 这是一个小数组,我想在大数组中引用Foos select_foos = [foo for foo in many_foos if some_condition(foo)] 我希望在创建多个\u foo时分配一次内存,并且只为select\u fo

我有一个大的结构数组,我想在更大的数组中创建一个小的结构引用数组。我如何用朱莉娅来表达这一点

例如,下面是我的大量Foo结构数组

struct Foo
  bah
end
many_foos = [Foo(i) for i in 1:100000]
这是一个小数组,我想在大数组中引用Foos

select_foos = [foo for foo in many_foos if some_condition(foo)]
我希望在创建多个\u foo时分配一次内存,并且只为select\u foo创建一个指针数组

朱莉娅是如何表达创造对某事物的引用,以及复制价值的诗句的?如何有效地创建大型结构数组


非常感谢

您的代码已经满足了您的要求。如果数组的元素类型是
isbitstype
,而
Foo
不是,因为它有一个非类型化字段,那么数组仅将其对象以行方式存储


一般来说,朱莉娅没有必要考虑这个问题。在将Julia数组传递到例如C中时,您只需要考虑内存布局,因为在那里您需要处理数组的原始内存。

原则上,也有
Ref
,但这不适用于这种情况。和
查看
/
子数组
,如果您想拥有现有数组的“引用切片”——但这避免了分配新数组,而不是复制元素(如Kristofer所述,这是自动完成的)。