Вопрос к знатокам!

Не могу понять, почему мы перед текстом ставим собаку, а перед цифрой нет? Что-то я не уловил! Подскажите пжл где почитать!?

@red: #ff4136;

.monster-happy {
.magic(@red);
}

.monster-foolish {
.magic(150px);
}

.magic(@parameter) when (iscolor(@parameter)) {
background-color:@parameter;
}

.magic(@parameter) when (isnumber(@parameter)) {
width:@parameter;
height:@parameter;
}

Это переменная. Поэтому с @.
Значение 150px взято произвольно, в переменную не записано, поэтому без @.
Как читается условие? “Если через примесь в качестве параметра передается цвет, то он добавляется как фон” “Если в качестве параметра используется число, то оно записывается как ширина и высота.”

ок, спасибо. придет с практикой… )

Это больше связано с логикой механизмов (как мне кажется), нежели просто с удобством. Когда мы приписываем собаку, мы как бы говорим механизму “подставь сюда параметр (переменную) с таким же названием”. Комп ищет и не парится. А когда мы вручную прописываем, мы ему говорим: “примени это” и точка, без всяких поисков.

Переменная - это как бы кличка какому то параметру. Вместо длинного “#ff4136” мы зовем его “@red”, указывая обязательно, что это кличка (на это указывает “@”)!

Если хочется, “150” тоже можно превратить в кличку. (не уверен что в именах кличек разрешены цифры). “@one-hundred-fifty” например.

Ответил Dmitry_Dubchenko