julia - 类型和结构的区别
问题描述
我正在尝试学习 Julia,并且正在阅读一本书,该书在关于复合类型的一章中显示了以下两个代码示例:
1.
type Points
x::Int64
y::Int64
z::Int64
end
2.
struct Point
x::Int
y::Int
z::Int
end
然而,这本书并没有解释,何时使用struct
以及何时使用type
.
有什么不同?
解决方案
这在您的资源中相当混乱,因为它混合了语言历史上不兼容的时代的不同含义。
- 最初(我认为是 0.7 之前的版本?),复合类型是用
type
or声明的immutable
,其中type
用于可变类型(现在也bitstype
称为“原始类型”)。 - 现在,我们有
mutable struct
和struct
用于示例目的(并且,与它一致,primitive type
和abstract type
)。
因此,基本上名称已更改,因此定义类型的所有方式都变得更加一致,并且不可变结构已成为“未标记”的情况。
在这种情况下,“可变”意味着您不能重新分配字段 ( p.x = 3
)。这并不意味着字段的内容不能更改,它们恰好是可变的(something.v[1] = 2
如果something
是不可变类型也将起作用!)。
推荐阅读
- python - 通过自定义聚合功能提高 pandas groupby 的效率
- asp.net - 如何从链接的 DLL 中引用 Request 对象?
- javascript - 解码(循环)直到字符串 URI 相同
- matlab - matlab中的二维离散傅里叶变换和逆DFT
- javascript - 为什么 Array.from(FileList) 会丢失所有元数据
- google-analytics - 全局网站代码 (gtag) 不发送任何内容
- ios - 如何将 Vimeo 360 视频从 url 播放到我的应用程序?
- sql - 我不知道如何删除sql oracle pentaho cde中的重复行
- node.js - 如何在 uri 中使用 https 模块?
- c# - 如何在 Windows 中计算应用程序级别的数据使用情况