相等运算符 Equality Operators

如果两个值的类型相同且_值相同,则它们被视为相等,这对于不同的类型意味着不同的事情

兼容性(无单位相等): Dart Sass ✓ | LibSass ✗ | Ruby Sass since 4.0.0 (unreleased)

相等运算符返回两个值是否相同。 它们写成 <expression> == <expression>,它返回两个 expressions 是否相等,以及 <expression> != <expression>,它 返回两个表达式是否_不_相等。 如果两个值的类型相同且_值相同,则它们被视为相等,这对于不同的类型意味着不同的事情:

  • Numbers 如果它们具有相同的值_和_相同的单位,或者当它们的单位相互转换时它们的值相等,则它们是相等的。
  • Stringsunquotedquoted 字符串中不常见 具有相同内容的被认为是相等的。
  • 如果 Colors 具有相同的红色、绿色、蓝色和 alpha 值,则它们是相等的。
  • Lists 如果它们的内容相等则相等。 逗号分隔列表不等于空格分隔列表,括号列表不等于未括号列表。
  • 如果 Maps 的键和值都相等,则它们是相等的。
  • Calculations 如果它们的名称和参数都相等,则它们是相等的。 操作参数按文本进行比较。
  • truefalsenull 仅等于它们自己。
  • Functions 等同于同一个函数。 函数是_通过引用_进行比较的,因此即使两个函数具有相同的名称和定义,如果它们未在同一位置定义,它们也会被视为不同。
scss
Scss
scss
@debug 1px == 1px; // true
@debug 1px != 1em; // true
@debug 1 != 1px; // true
@debug 96px == 1in; // true

@debug "Helvetica" == Helvetica; // true
@debug "Helvetica" != "Arial"; // true

@debug hsl(34, 35%, 92.1%) == #f2ece4; // true
@debug rgba(179, 115, 153, 0.5) != rgba(179, 115, 153, 0.8); // true

@debug (5px 7px 10px) == (5px 7px 10px); // true
@debug (5px 7px 10px) != (10px 14px 20px); // true
@debug (5px 7px 10px) != (5px, 7px, 10px); // true
@debug (5px 7px 10px) != [5px 7px 10px]; // true

$theme: ("venus": #998099, "nebula": #d2e1dd);
@debug $theme == ("venus": #998099, "nebula": #d2e1dd); // true
@debug $theme != ("venus": #998099, "iron": #dadbdf); // true

@debug true == true; // true
@debug true != false; // true
@debug null != false; // true

@debug get-function("rgba") == get-function("rgba"); // true
@debug get-function("rgba") != get-function("hsla"); // true