小编Rec*_*eck的帖子

Javascript闭包:原始行为与参考行为

我希望有人可以向我解释下面的代码中发生了什么。我发现很难理解为什么这种闭包对原语和引用的处理方式不同。我希望这里缺少明显的东西。

function returnFunction(x, y) {
  return function() {
      alert("x:" + x + " - nb of elements in y:" + y.length);
  };
}

var f = 0;
var g = [];
var h = [];

for(var i = 0; i < 3; i++) {
  f += 1;
  g.push(i);
  h.push(returnFunction(f, g));
}

for(var i = 0; i < 3; i++) {
  h[i]();
}

// this is what gets returned
// x:1 - nb of elements in y: 3
// x:2 - …
Run Code Online (Sandbox Code Playgroud)

javascript

4
推荐指数
1
解决办法
338
查看次数

Go中的范围关键字和2d切片

我是第一次尝试Go.在过去一小时左右,我一直不知道为什么这段代码不起作用.

grid := make([][]string, 2)
for _, row := range grid {
    row = []string{"foo", "bar"}
}
fmt.Println(grid)
Run Code Online (Sandbox Code Playgroud)

我希望它能打印出类似的东西

[
  ["foo", "bar"]
  ["foo", "bar"]
]
Run Code Online (Sandbox Code Playgroud)

但它反而拒绝使用该消息进行编译row declared and not used.

很明显,我错过了关于2d切片和range关键字的内容.有任何想法吗?

go

1
推荐指数
1
解决办法
92
查看次数

标签 统计

go ×1

javascript ×1