“输入”和“输出”关键字在D中的含义是什么?

时间:2014-02-21 18:48:56

标签: d

D中的inout关键字实际上意味着什么?通过查看使用这些参数的函数,我了解到in关键字用于函数输入,out关键字用于基本上通过引用传递的参数。

这种理解是否正确,他们实际允许或禁止程序员做什么?

1 个答案:

答案 0 :(得分:8)

是的,你基本上得到它。 in扩展为const scope,意味着您无法更改变量(或其指向的任何内容),也不应该在任何地方保留对它的引用(在大多数情况下,scope实际上并未实现虽然)。基本上,in看起来,不要碰。

out表示给定变量接收值。它与ref非常相似 - 函数内部的变化也可以在外部看到 - 差异很小,即变量被初始化为它们的正常初始值,清除它们在调用函数之前的值。

基本上,void foo(out int a) {} == void foo(ref int a) { a = 0; /* inserted automatically */ }