6

配列スプライシングのCoffeeScriptドキュメントでは、末尾の目的は何, _refですか?

CoffeeScript:

numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
numbers[3..6] = [-3, -4, -5, -6]

コンパイル先:

var numbers, _ref;
numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
[].splice.apply(numbers, [3, 4].concat(_ref = [-3, -4, -5, -6])), _ref;
4

1 に答える 1

7

これは、CoffeeScriptのスライス操作が割り当てたばかりのスライスを返したいのですが、splice()は代わりに削除された要素を返すためです。

したがって、これを実現するために、コンストラクトをコードフラグメントにコンパイルします。このコードフラグメントは、最初にスライスをローカル_ref変数に割り当て、次にコンマ演算子を使用して、を呼び出した後にその変数を返しますsplice()

于 2012-07-28T11:11:34.980 に答える