グリッドを生成する twitter bootstrap mixin.less を見ました。次のコード行があります。
.offsetX (@index) when (@index > 0) {
(~".offset@{index}") { .offset(@index); }
.offsetX(@index - 1);
}
.offsetX (0) {}
誰が何のためにそれ.offsetX (0)
を知っていますか?
グリッドを生成する twitter bootstrap mixin.less を見ました。次のコード行があります。
.offsetX (@index) when (@index > 0) {
(~".offset@{index}") { .offset(@index); }
.offsetX(@index - 1);
}
.offsetX (0) {}
誰が何のためにそれ.offsetX (0)
を知っていますか?
.offsetX (@index)
はインデックスが0より大きい場合に再帰的であり、減算によって繰り返されるため、この場合は再帰関数の終点を表します。
@indexを12に設定すると、。.offset12, .offset11,..., .offset1
には何も書き込まれません.offset0
。
プリプロセッサがのミックスイン呼び出しを解決しようとすると.offsetX (0)
、whenキーワードが再帰的なミックスインの使用を防ぎます。別のミックスインが見つからない場合は、未定義の関数を呼び出すようなエラーが発生します。
したがって、の終了ケースは.offset (0) {}
、再帰をきれいに終了するためにあります。
それを試してみたい場合は、ターミナルケースの行をコメントアウトして、再実行時の例外を確認できる基本的なデモを次に示します。