"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > ماذا نعني حقًا بأنواع البيانات غير القابلة للتغيير؟

ماذا نعني حقًا بأنواع البيانات غير القابلة للتغيير؟

تم النشر بتاريخ 2024-09-01
تصفح:510

What do we REALLY mean by immutable data types?

لماذا تكون أنواع البيانات إما قابلة للتغيير أو غير قابلة للتغيير؟
لننظر إلى لغة بايثون كمثال،

أنواع البيانات في بايثون هي في الأساس كائنات أو فئات، وint عبارة عن فئة، وعائمات، وقوائم وما إلى ذلك.

لذلك، كتابة x=6 تنشئ كائنًا صحيحًا جديدًا بقيمة 6 وتشير إلى مرجع يسمى x في هذا الكائن.

الآن نحن بحاجة إلى النظر في الفئات، الطبقات بشكل أساسي تجمع البيانات والوظائف معًا، هناك وظائف تسمى الطرق وهي من نوعين: طرق accessor وmutator. ]

تصل طرق الوصول إلى الحالة الحالية للكائن ولكنها لا تغير الكائن نفسه، على سبيل المثال

س = "مرحبا"

ص = x.upper()

هنا يتم استدعاء الأسلوب العلوي على الكائن الذي يشير إليه x، ثم يقوم الموصل العلوي بإرجاع كائن جديد، وهو كائن str وهو نسخة بأحرف كبيرة من السلسلة الأصلية. (لا تتردد في إعادة القراءة)، فهي تقوم في الأساس بإرجاع كائن جديد استنادًا إلى الأصل، والآن فقط يتم كتابته بأحرف كبيرة.

من ناحية أخرى، تقوم أساليب Mutator بتغيير القيم في الكائنات الموجودة ومثال جيد على ذلك هو نوع القائمة (الفئة).

القائمة الجديدة = [1,2,3]

newList.reverse()

ستعمل هذه الطريقة على تغيير الكائن الموجود، ولا يمكن التراجع عن طريقة التعديل.

يقال إن أنواع البيانات التي تفتقر إلى هذه الأساليب المتحولة غير قابلة للتغيير، وبالتالي تحتوي فقط على أساليب الوصول، والتي تفتقر إليها تكون قابلة للتغيير.

آمل أن يكون هذا مفيدًا، كن فضوليًا :)

بيان الافراج تم إعادة نشر هذه المقالة على: https://dev.to/oduor_arnold/what-do-we-really-mean-by-immutable-data-types-edk?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3