"aardio函数库.pdf"
在aardio编程环境中,`import`语句扮演着至关重要的角色,它允许程序员将外部的名字空间引入到当前的命名空间中,从而实现模块化的编程。这个名字空间系统使得代码组织更加有序,便于管理和重用。`import`语句确保了库的唯一性,不会重复加载同一个库,并且保证库内的代码在单个线程中只会执行一次。
aardio的库分为三个主要类别:
1. **内核库(Kernel Libraries)**:这些是由aardio自身提供的基础库,如`string`库和`raw`库。它们提供了核心功能和数据类型,是aardio语言的基础部分。
2. **标准库(Standard Libraries)**:这些库由aardio开发环境提供,通常位于aardio安装目录下的`lib`子目录中。库的名字空间路径与实际的物理路径相匹配,方便开发者使用。
3. **用户库(UserLibraries)**:用户可以在自己的aardio应用程序的根目录下的`lib`目录创建自定义库。这样做的好处是能够根据项目需求定制功能,同时保持代码的结构清晰。
当发布`exe`文件时,aardio的编译器会自动分析程序中引用的库,并将其包含在目标程序中,不引用的库则会被忽略。然而,有时我们可能需要控制库的包含与否:
- 如果希望在编译时不包含某个库,但在运行时动态加载,可以使用`global.import`来导入,这样编译器就会知道你需要这个库,但不会把它打包进最终的`exe`。
- 反之,如果某个库在发布时不需要,但在未来可能需要通过动态加载,可以把`import`语句放入注释中,这样库会被包含在`exe`中,但不会在当前程序中直接引用。
`import`语句的查找顺序如下:
1. **查询库缓存**:检查当前名字空间是否已经导入过该库,如果已导入,则直接使用,不进行后续步骤。
2. **查询内核库**:如果库在内核库中,直接导入。
3. **查找编译嵌入的库文件**:如果内核库中没有,aardio会查找在发布时被嵌入到`exe`文件中的库。
4. **查询标准库**:如果标准库目录下存在该库,那么就导入。
以`import time.ole`为例,这个例子会尝试导入名为`time.ole`的库。首先,它会在库缓存中查找,接着搜索内核库,然后查找标准库,最后如果还没有找到,会尝试在应用程序的根目录下的`lib`目录寻找对应的库文件。这里`time.ole`的名字空间路径反映了其物理路径,即将路径中的斜杠替换为点号。
通过这样的机制,aardio提供了灵活的库管理方式,使得开发者可以根据项目需求高效地组织和使用代码。理解并熟练运用`import`语句及其相关的库管理系统,对于编写可维护性和扩展性强的aardio程序至关重要。