Julia 类型

Julia 中,如果类型被省略,则值可以是任意类型。添加类型会显著提高性能和系统稳定性。

Julia 类型系统的特性是,具体类型不能作为具体类型的子类型,所有的具体类型都是最终的,它们可以拥有抽象类型作为父类型。其它高级特性有:

  • 不区分对象和非对象值:Julia 中的所有值都是一个有类型的对象,这个类型属于一个单一、全连通类型图,图中的每个节点都是类型。
  • 没有“编译时类型”:程序运行时仅有其实际类型,这在面向对象编程语言中被称为“运行时类型”。
  • 值有类型,变量没有类型——变量仅仅是绑定了值的名字而已。
  • 抽象类型和具体类型都可以被其它类型和值参数化。具体来讲, 参数化可以是 符号, 可以是 isbits 返回值为 true 的类型任意值 (本质想是讲, 这些数 像整数或者布尔值一样, 储存形式类似于 C 中的数据类型或者 struct, 并且 没有指向其他数据的指针), 也可以是元组。如果类型参数不需要被使用或者 限制, 可以省略不写。

Julia 的类型系统的设计旨在有效及具表现力,既清楚直观又不夸张。许多 Julia 程序员可能永远不会觉得有必要去明确地指出类型。然而某些程序会因声明类型变得更清晰,更简单,更迅速及健壮。

类型声明

:: 运算符可以用来在程序中给表达式和变量附加类型注释。这样做有两个理由:

  1. 作为断言,帮助确认程序是否正常运行
  2. 给编译器提供额外类型信息,帮助提升性能

:: 运算符放在表示值的表达式之后时读作“前者是后者的实例”,它用来断言左侧表达式是否为右侧表达式的实例。如果右侧是具体类型,此类型应该是左侧的实例。如果右侧是抽象类型,左侧应是一个具体类型的实例的值,该具体类型是这个抽象类型的子类型。

联系我们

邮箱 626512443@qq.com
电话 18611320371(微信)
QQ群 235681453

Copyright © 2015-2019

备案号:京ICP备15003423号-3