不可变类型 vs 结构体 和 类型 vs 可变结构体 在 Julia 中。

15

让我们定义四个不同的点类:

type PointType
    x
    y
end

mutable struct PointMut
    x
    y
end

immutable PointImmut
    x
    y
end

struct PointStruct
    x
    y
end

PointTypePointMut有什么区别?为什么有人会选择其中之一?

此外,PointImmutPointStruct有什么区别?

我倾向于认为它们只是同义词,但我没有找到明确说明,所以我想知道是否隐藏了一些微妙的差异。


在0.6版本中,immutable和type仍然可以作为同义词使用,而不会出现弃用警告。 - Gnimuc
1个回答

37

typeimmutable 在 Julia 0.6 及其以前版本中有效,而在 Julia 0.6 及以后版本中,mutable structstruct 是同一对象的名称。在 mutable struct 中,mutable 表示字段可以更改,但实际上很少使用,因此默认情况下是不可变的。mutable structstruct 更慢。


1
这是因为它正在被弃用。typeimmutable曾经存在的事实很快就会成为历史书籍中的内容。 - Chris Rackauckas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接