【发布时间】:2014-01-27 10:21:00
【问题描述】:
说我有这个 mixin:
.loop-strings("A, B, C", "1, 2, 3", "X, Y, Z";);
这样实现:
.loop-strings(@list, @index: 1) when (isstring(extract(@list, @index))) {
@currentMember: extract(@list, @index);
.do-something-with(@currentMember);
.loop-strings(@list, (@index + 1)); /* loop the next member */
}
.do-something-with(...) {
@args1 : e(@arguments);
@args2 : A, B, C;
args1: @args1;
args2: @args2;
extract-args1-2: extract(@args1, 2);
extract-args2-2: extract(@args2, 2);
}
结果:
args1: A, B, C;
extract-args1-2: extract(A, B, C, 2);
args1: 1, 2, 3;
extract-args1-2: extract(1, 2, 3, 2);
args1: X, Y, Z;
args2: A, B, C;
extract-args1-2: extract(X, Y, Z, 2);
extract-args2-2: B;
这些接缝是@foo:e("A, B, C");或@foo:~"A, B, C";和@foo:A, B, C;之间的区别
我似乎不能使用extract(@foo, 2);,除非它被定义为一个对象列表。
有没有办法将转义字符串转换为对象列表
【问题讨论】: