Type Bounds في سكالا (Scala) هي طريقة لوضع حدود على نطاق الأنواع (types) التي يمكن استخدامها في المتغيرات والأدوات الجرأية (methods) والوظائف (functions).
تتضمن Type Bounds حدًا أدنى و حدًا أقصى لنطاق الأنواع المسموح بها للبيانات. على سبيل المثال، يمكن وضع حد أدنى للنوع بحيث يتعين على النوع المناسب تنفيذ بعض الوظائف الخاصة ، أو وضع حد أقصى للنوع بحيث لا يتم تنفيذ الأدوات الجرأة على نوع غير صالح.
لإضافة Type Bounds الأدنى، يمكن استخدام العلامات <:
مثال:
“`
def findMax[T <: Comparable[T]](a: T, b: T): T = {
if (a.compareTo(b) > 0) a else b
}
“`
تعني هذه الدالة أن النوع الذي يتم استخدامه في “a” و “b” لا يمكن أن يكون أقل من Comparable[T].
و لإضافة Type Bounds الأقصى، يمكن استخدام العلامات >:
مثال:
“`
def someMethod[T >: Null](arg: T): Unit = {
// do something with arg
}
“`
تعني هذه الدالة أن النوع الذي يتم استخدامه في “arg” لا يمكن أن يكون أعلى من Null.