تفاوت mutable و immutable چیست؟

تفاوت mutable و immutable چیست؟

در معنای کلمه mutable به معنای تغییر پذیر و immutable به معنی غیر قابل تغییر پذیر می باشند. همین مفاهیم در زبان های برنامه نویسی نیز صادق می باشد.

به طور مثال در C#

immutable : string
mutable : StringBuilder

به طور مثال زمانی که میخواهید که رشته را ویرایش کنید در ظاهر همون شیء مورد تغییر قرار می گیره اما اصل قضیه اینه که در واقع دارید نمونه جدیدی از کلاس String میسازید. پس به این نکته توجه کنید که اگر در برنامه تون زیاد با رشته ها، ویرایش رشته ها،Append کردن و … کار میکنید از StringBuilder استفاده کنید. به مثال پایین توجه کنید

در نظر بگیرید که برنامه ما پردازش زیادی روی String ها داره، ممکنه این پردازش ها توی حلقه قرار بگیره مثلاً یه حلقه  25000 تایی یا 50000 تایی ، یا حتی بیشتر  تقریباً می تونیم حدس بزنیم که چه اتفاق ناگواری رخ میده.
برای این که بهتر این قضیه رو درک کنیم یه سری تست به همراه سورس وجود داره که میتونید بیشتر بررسی کنید و نتایج رو ببینید.

عکس زیر نشان دهده اختلاف ها در تعداد 25000، 50000 و 100000 رو نشون میده

string_builder

تفاوت نتایج واقعا شگفت انگیزه 🙂

رفرنس

http://www.thebestcsharpprogrammerintheworld.com/2018/07/13/string-vs-stringbuilder/

https://stackoverflow.com/questions/4274193/what-is-the-difference-between-a-mutable-and-immutable-string-in-c