Julia编程:类型系统与多维向量应用
1. 派生与复合类型
在处理车辆类型比较时,我们遇到了一些问题。比如,无法直接比较两辆宝马车、两辆大众车,也不能将任何汽车与福特车进行比较。若要涵盖所有汽车品牌的比较可能性,仅用三种汽车类型来实现是不切实际的,更不用说还包括自行车和船了。Julia通过使用参数化类型解决了这个问题。
另外,所有车辆都需要有一个速度字段,并且在使用参数化类型定义规则时,速度字段在每种情况下都需要使用相同的符号(即相同的名称)。我们可以在使用字段之前检查其是否存在,或者使用 try-catch
块来捕获错误,但如果具体类型能够从其超类型继承字段,这个问题就会大大减少。
车辆类型、构造函数和函数定义都在 vehicles.jl
文件中定义。
2. 模块化
将代码作为一个模块处理是有好处的。我们需要在文件开头添加以下代码,并以 end
语句结束:
module Vehicles
export Contact, Vehicle, Car, MotorBike, Yacht, Powerboat, Boat
export Ford, BMW, VW, Scooter, Speedboat, isquicker, islonger
可以使用 using .Vehicles
语句来访问这个模块,它会从当前目录或 LOAD_PATH
数组中查找。我们可以使用