الدالة ()comparable في Sass

من موسوعة حسوب

تتحقَّق الدالة comparable()‎ ما إذا كان بالإمكان جمع أو طرح أو موازنة العددين الممرَّرين إليها.

البنية العامة

comparable($number1, $number2)

المعاملات

‎$number1

العدد الأول.

‎$number2

العدد الثاني.

القيم المعادة

تُعاد القيمة المنطقيَّة TRUE إن كان بالإمكان جمع أو طرح أو موازنة العددين ‎$number2 و ‎$number1. خلا ذلك، تعاد القيمة FALSE.

الأخطاء والاستثناءات

سيُرمى الخطأ ArgumentError إذا كان أحد المعاملين السابقين من النوع الخطأ.

أمثلة

أمثلة عن استخدام الدالة comparable()‎ على أعداد لها مختلف الوحدات:

comparable(2px, 1px) // true
comparable(100px, 3em) // false
comparable(10cm, 3mm) // true

تذكّر أنَّ Sass لا تسمح بجمع الأعداد التي لا تكون وحداتها متوافقة مع بعضها وسيظهر خطأ عند محاولة فعل ذلك، ويمكن توظيف الدالة comparable()‎ لإنشاء دالة تسمح بجمع الأعداد التي من وحدات متوافقة، واستخدام قيمة افتراضية في حال لم تكن تلك الأعداد من وحدات متوافقة. وبهذا سنتفادى إظهار رسالة خطأ إلى المستخدم. لاحظ طريقة استخدام التعليمة ‎@if:

// دالة لجمع قيمتين إن كانتا قابلتين للجمع
// أو استخدام قيمة افتراضية بدلًا من ذلك
@function add-if-comparable($arg1, $arg2, $default: null) {
  $output: null;
  @if comparable($arg1, $arg2) == true {
    $output: $arg1 + $arg2;
  } @else {
    $output: $default;
  }
  @return $output;
}


.selector {
  font-size: add-if-comparable(1em, 0.5rem, 1.5em); // لا يمكن جمع القيمين، وستستعمل القيمة الافتراضية
  padding: add-if-comparable(1cm, 5mm); // يمكن جمع القيمتين
}

ستُصرَّف شيفرة Sass السابقة إلى شيفرة CSS الآتية:

.selector {
  font-size: 1.5em;
  padding: 1.5cm; }

انظر أيضًا

  • الدالة type_of()‎: تعيد نوع القيمة الممرَّرة إليها.
  • الدالة inspect()‎: تعيد سلسلة نصّيَّة تحوي قيمة تمثيلها في Sass.
  • الدالة global_variable_exists()‎: تتحقَّق ما إذا كان متغير ما موجود في النطاق العام.
  • الدالة feature_exists()‎: تتحقَّق ما إذا كانت ميزة معينةٌ موجودةٌ في وقت تشغيل Sass.

مصادر