VBScript 保证 GC 将在每一行之后运行,因此如果您创建一个对象并且不保留引用,它将在行尾调用其析构函数。这允许您做许多有趣的事情,其中之一是模拟可选参数:
with foo(mandatoryArg)
.optArg = 42
end
另一个是允许使用方便的构建器语法:
with Schema.define("Foo")
.attr "name", String
with .attr "key", String
.lengthEquals(10)
end
end
在此示例中,定义和 attr 返回对象,这些对象最终确定了析构函数中的架构和属性定义。
我一直将临时对象称为 ephemeron,但我想知道是否存在此类构造的预先存在的术语。有人在别处见过这个吗?