我第一次遇到这个问题,我无法理解。
假设我们有一个数组和一个foreach循环。 像这样:
var v = array(10,20,50);
var i = 0
write(foo(v, v[i++]));
function foo(ref int[] v, name int y){
foreach(int j in v){
write(y);
}
return y;
}
我错了还是有些东西不能在这里工作?我的意思是,每次我通过foreach循环,我将评估y(按名称),所以,作为v [i ++]我将i变量的值增加1。
现在,它应该返回什么价值?!如果我再次评价y,我不能做y = v [3]因为我出界了。我做错了吗?在foreach循环之前,我应该只评估y一次吗?在按名称调用参数时,我不会考虑使用foreach。
Dunno,我有点困惑。
提前致谢!