الدالة ()declare
في Sass
تُصرّح بتوقيع (signature) خاص بلغة Sass لأجل دوال روبي. يتضمن التوقيع أسماءَ الوسائط، وهل ستأخذ الدالة عددًا متغيرًا من الوسائط، وما إن كانت الدالة ستقبل مجموعة عشوائيةً من الوسائط المُسمّاة (keyword arguments).
التصريح بالتوقيع ليس ضروريًا ولكن لن تدعم الدالةُ بدونه الوسائط المُسمّاة.
يمكن أن يكون لدالةٍ واحدةٍ أكثر من توقيع واحدٍ طالما أنّ كلَّ توقيع يأخذ عددًا مختلفًا من الوسائط. من الممكن أيضًا التصريح بعدة تواقيع تقبل جميعُها نفس العدد من الوسائط، ولكن لن يُستخدم في تلك الحالة سوى التوقيع الأول إلّا إذا استعمل المُستخدم الوسائط المُسمّاة.
البنية العامة
declare(method_name, args, options = {})
المعاملات
method_name
اسم الدالة التي سيُصرَّح بتوقيعها.
args
مصفوفة تضم أسماء الوسائط الموجودة في توقيع الدالة.
option
مجموعة من الخيارات القابلة للتخصيص، وقيمته الافتراضية هي {}
.
الخيارات (options)
:var_args
هذا الخيار هو قيمة منطقية (Boolean) يحدّد ما إذا كانت الدالة ستقبل عددًا متغيرًا من الوسائط (غير المسماة) إضافةً إلى الوسائط المسماة. قيمته الافتراضية هي false
.
:var_kwargs
هذا الخيار هو قيمة منطقية يحدّد ما إذا كانت الدالة ستقبل وسائط مُسمّاةٍ أخرى إضافةً إلى تلك الموجودة في :args
. إذا كانت قيمته true
، فسيُمرّر لدالة روبي خريطة تربط بين سلاسل نصّية وقيم كوسيطٍ أخيرٍ. أمّا إن كانت قيمته true
وقيمةُ الخيار :var_args
تساوي false
، فستحرص Sass على أن يكون الوسيط الأخير خريطة. قيمته الافتراضية هي false
.
أمثلة
declare :rgba, [:hex, :alpha]
declare :rgba, [:red, :green, :blue, :alpha]
declare :accepts_anything, [], :var_args => true, :var_kwargs => true
declare :some_func, [:foo, :bar, :baz], :var_kwargs => true