D中的in
和out
关键字实际上意味着什么?通过查看使用这些参数的函数,我理解该in
关键字用于函数输入,out
关键字用于基本上通过引用传递的参数.
这种理解是否正确,他们实际允许或禁止程序员做什么?
是的,你基本上得到它.in
扩展到const scope
意味着你不能改变变量(或它指向的任何东西),也不应该在任何地方保持对它的引用(scope
尽管在大多数情况下实际上并没有实现).基本上in
就是看,不要碰.
out
表示给定变量接收值.它非常相似ref
- 在函数内部也可以看到它的变化 - 外部变量被初始化为正常初始值的小差别,清除它们在调用函数之前的值.
基本上,void foo(out int a) {}
==void foo(ref int a) { a = 0; /* inserted automatically */ }