در آموزش قبل در خصوص رشته ها صحبت کردیم. این آموزش در واقع ادامه آموزش قبل است. در این قسمت در خصوص شیء رشته صحبت می کنیم.
شیء چیست ؟
یک شی ٔ ساختاری است که به طور همزمان هم شامل داده و هم توابع است. یک string object می تواند مانند یک متغیر ایجاد شود. این اشیاء شامل توابعی هستند که به آنها در برنامه نویسی شی گرا متد نیز گفته می شود.
این متدها بر روی داده شی عملیات انجام می دهند.
مثال:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | void setup() { String my_str = "This is my string."; Serial.begin(9600); // (۱) print the string Serial.println(my_str); // (۲) change the string to upper-case my_str.toUpperCase(); Serial.println(my_str); // (۳) overwrite the string my_str = "My new string."; Serial.println(my_str); // (۴) replace a word in the string my_str.replace("string", "Arduino sketch"); Serial.println(my_str); // (۵) get the length of the string Serial.print("String length is: "); Serial.println(my_str.length()); } void loop() { } |
نتیجه:
1 2 3 4 5 | This is my string. THIS IS MY STRING. My new string. My new Arduino sketch. String length is: 22 |
در کد زیر
1 | String my_str = "This is my string." ; |
این قسمت یک شی با نام my_str با مقدار داده “This is my string.” ایجاد شده است.
این تعریف دقیقا مشابه تعریف متغیرهای عادی و مثلا از نوع Integer است:
1 | int my_var = 102; |
توضیح برخی از متدها :
متد println مقدار داده را در سریال مانیتور چاپ می کند.
متد toUpperCase مقدار داده را به صورت حروف بزرگ یا UpperCase تبدیل می کند.
امکان ویراش و اختصاصی داده جدید در رشته وجود دارد. مانند آنچه در کد آمده است:
1 | my_str = "My new string." ; |
با استفاده از متد replace می تواند یک کلمه یا قسمت از رشته را به مقدار جدید جایگزین کرد. این متد دو ورودی دریافت می کند. ورودی اول مقداری است که باید برای آن جستجو انجام شود و ورودی دوم مقداری است که باید جایگزین مقدار اول شود.
متد length طول رشته را بر می گرداند. نکته قابل توجه اینجاست که می توانید بدون انتساب خروجی متدها به یک متغیر، و سپس چاپ آن مستقیم آنها را چاپ کنید.
استفاده از اشیاء رشته ای به مراتب ساده تر از استفاده از آرایه هاست.
متدهای داخلی این اشیاء کمکبزرگی برای کد نویسیآسانی هستند.
اصلی ترین مشکل استفاده از string object بحث حافظه یا RAM مورد استفاده آنهاست. این اشیاء مصرف رم بالاتری نسبت به حالت آرایه ای دارند. این مصرف رم در صورتی که مدیریت نشود می تواند به هنگ آردوینو یا اعمال غیرمنتظره ای ختم شود. اگر برنامه شما کوچک است نیازی نیست نگران کمبود حافظه باشید.
مشکل استفاده از آرایه ها سختی کار با آنهاست. برای هر عملکرد می بایست توابع خودتان را بنویسید.
مزیت استفاده از آرایه این است که طول آن را می توانید مدیریت کنید.