1

这是来自 Jamis Buck 的 Minecraft Generator 的代码片段。this.depth 是从 1 到 10 的值。我理解 for 循环。我了解三元运算符。我不知道如何评价这个;

for (z = 1, _ref = this.depth; 1 <= _ref ? z <= _ref : z >= _ref; 1 <= _ref ? z++ : z--)

对我来说,只要 _ref !< 1 在我看来就是这样;

for (z = 1, _ref = this.depth;; 1 <= _ref ? z++ : z--)

我错过了什么?预先感谢您的任何帮助。我从这个网站学到了很多东西,但这是我第一次发帖。

4

1 回答 1

3

解析循环的正确方法是:

for (
    z = 1, _ref = this.depth; 
    (1 <= _ref ? z <= _ref : z >= _ref);
    (1 <= _ref ? z++ : z--)
)

如果 _ref < 1,假设 _ref 不变,则循环等效于

for (
    z = 1, _ref = this.depth; 
    z >= _ref; 
    z--
)

如果 _ref >= 1,假设 _ref 不变,则循环等效于

for (
    z = 1, _ref = this.depth; 
    z <= _ref; 
    z++
)

请注意,在这两种情况下,减少都假定_ref不变。如果您的循环发生变化_ref,那么减少假设就会失效。

于 2013-10-12T03:02:27.887 回答