在ATS中,静态加载(简称staload)指的是一个在加载包中填入声明名称的命名 空间的创建。
假设有一个名为foo.sats的文件,它包含下面几行代码:
下面的静态加载声明(为foo.sats中声明的名字)引入了一个命名空间FOO:
若要引用命名空间FOO中的一个名字,则需将前缀$FOO.加在该名字 前。例如,下面的代码全部引用了命名空间FOO中的可用名称:
如果文件foo.sats被再次静态加载如下:
则foo.sats实际上不会被编译器加载的,相反,FOO2仅仅是 FOO的别名。
也允许foo.sats被静态加载如下:
在这种情况下,foo.sats文件中被声明的名称所在的命名空间是开放的。例如: 下面的代码显示这些名称能直接被引用:
我们假设有下面的声明序列:
第二次出现的aValue是引用第一次声明中提及的那个,还是指的是 foo.sats内部所声明的那个?答案可能有点让人意外:它引用在同一文件中ATS通 过搜索出现的第一个可用声明的名字。