out参数也通过引用传递,但是假设输入值是不相关的。对于托管类型(字符串,接口等),编译器将通过在例程开始之前清除变量来执行此操作,相当于编写param:= nil。对于非托管类型,编译器实现与var相同。
请注意,清除托管参数是在调用点执行的,因此为函数生成的代码不会随out或var参数而变化。