包含操作符

包含操作符可以将外部文件链接到当前代码中。


运算符 说明
$ 包含操作符

这是一个编译时生效的操作符,指示编译器将该文件连接到代码中,并返回一个字符串
io.open()
io.print ( $"/my.txt" ) //my.txt文件内容

在程序发布后,程序即可脱离原来的文件运行,
因为该文件已经被编译为一个普通字符串变量并内嵌到EXE中了。

如果$包含的文件路径以"~/"或"~\"开始,并且查找文件失败,
aardio会移除路径前面的~,转换为"\"或"/"开头的应用程序根目录路径继续查找。
应用程序根目录在开发时指工程根目录(工程之外的aardio文件指启动aardio文件所在目录)。

反之,如果包含的文件以"/"或"\"开始,并且查找包含文件失败,
aardio不会在路径前面添加"~"到EXE目录下查找(EXE目录在开发时指aardio开发环境所在目录)。

默认如果找不到包含文件会报错,但是如果包含文件路径前面添加一个问号,
找不到文件时不报错而是返回null,示例:

io.open()
io.print ( $"?不存在的路径" ) //不报错而是返回null

需要注意的是:

  1. 包含操作符并非在源代码中包含文件,而是在编译后、运行以前生效,
    在发布EXE或编译单个aardio文件时都会执行包含操作.
  2. 被包含的文件发布后已内嵌入生成的EXE中,因此没有必要将被包含的文件放入资源目录.
    资源目录的文件也会嵌入生成的EXE,这样会导致一个文件被包含两次.
  3. 包含的是原始二进制文件,aardio不会进行任何改变,即使你包含的是aardio源码文件,aardio不会编译该文件。 你必须单独编译该aardio文件.