زبان روبی: ادامه مبحث متغیر ها و آرایه ها

در این قسمت سعی داریم در مورد مقدار های بولی و سیمبل ها و آرایه ها یاد بگیرم.

میتونید قسمت قبلی رو از لینک زیر مطالعه کنید:

https://virgool.io/@mfartoot14/%D8%B2%D8%A8%D8%A7%D9%86-%D8%B1%D9%88%D8%A8%DB%8C-%D8%A7%D8%B9%D8%AF%D8%A7%D8%AF-%D8%B5%D8%AD%DB%8C%D8%AD-%D9%88-%D8%A7%D8%B9%D8%B4%D8%A7%D8%B1%DB%8C-fost4rlygj5h

بولی ها مقدار های منطقی هستند و دو تا مقدار دارند. یا درست هستند یا نادرست که به انگلیسی هم میشن True و False.

برای تعریف بولی ها هم مثل قبل متغیر تعریف میکنیم و جلوش مقدارشو بدون کوتیشن و با حروف کوچک میذاریم.

boolean = true
boolean = false

شما میتونید با تابع to_s مقدار بولین هارو هم به استرینگ تبدیل کنید. یا میتونید از عملگر های منطقی استفاده کنید که خیلی مهمند.

برای اینکه بفهمیم مقدار متغیری با یه عدده برابر هست باید از عملگر == استفاده کنیم که جواب بولین برمیگردونه:

یا برعکس این اتفاق رو هم داریم که میتونیم ببینیم مقدار متغیری با مقداری دیگر برابر نیست:

اینجا میبینیم که مقدار متغیر true هست و وقتی از عملگر != استفاده میکنیم اینجوری میشه که آیا true با false برابر نیست؟ که جوابش true یا صحیح هست.

میتونیم از > برای برسی کوچکتر بودن و < برای بزرگ بودن و => برای کوچکتر مساوی و =< برای بزرگتر مساوی استفاده کرد:

میبینید که‌ number برابر با ۲ هست و چون نوشتیم کوچکتر مساوی true چاپ کرده.

اکنون سوال اینجا هست که آیا میشه چندتا عمل رو در یک خط نوشت. یعنی میشه دوتا برسی رو توی یه خط انجام داد. جواب بله هست و ما میتونیم از عملگر && برای "و" و از عملگر || برای "یا" استفاده کنیم

اینجا از عملگر && استفاده کردیم که در این عملگر باید دوطرفش true باشند تا جواب true برگردونه. وگرنه false برمیگردون.

در عملگر || هم هتی اگر یکی از طرف ها true بود جواب true برمیگردونه یا اینکه دو طرف true باشند.

که میبینید فقط یکی از طرف ها true هست ولی بازم جواب درست رو برگردونده.

در ضمن ما میتونیم به جای دوتا | یا دوتا & از یدونه استفاده کنیم یا به صورت or و and بنویسیم که پیشنهاد میشه برای خوانایی کد دوتا || یا && بذارید.


یه عملگر دیگر داریم که نقیض داده آماری که هست رو برمیگردونه یا مقدار مطقیش رو برعکس میکنه:

الان که این عملگر هارو یاد گرفتیم یه برگشتی میدیم به استرینگ ها چون یه چیزی در مورد عملگر ها از یادم رفته بود.اینکه ما میتونیم استرینگ هارو باهم جمع یا به عددی ضرب کنیم:

میبینیم که وقتی از عملگر ضرب استفاده میکنیم دوتا استرینگ رو در پشت سر هم گذاشته ولی نکته قابل توجه اینه که وقتی استرینگ رو با "o" جمع کردیم مقدارش تغییر نکرده و وقتی پایین ضرب میکنیم میبینیم o نیستش:

برای حل این مشکل باید دوباره مقدار دهی کنیم:

چندتا عملگر دیگه هم هستند که میتونید برای ساده تر کردن کدنویسی ازش استفاده کنید:

number = 2
number += 2

میتونیم از += به جای نوشتن:

number = number + 2

استفاده کنیم. میتونید از دیگر عملگرهایی همشکل این مثل -= یا *= هم استفاده کنید که من اینجا براتون نذاشتم.




آرایه ها:

آرایه ها هم نوعی متغیر هستند با این فرق که میتونید تعداد زیادی مقدار بهشت بدین.

آرایه ها تو زبان های برنامه نویسی خیلی مهمند و اگه آرایه نبود ما باید از متغیر های زیادی برای ذخیره داده های هم ناممون استفاده میکردیم که اینجوری کد نامنظم میشد و هم از سرعت برنامه کاسته میشد.

برای تعریف آرایه باید مثل تعریف متغیر نام و فاصله رو بذاریم و سپس براکت یا اکولاد باز و بسته بنویسیم و هر مقداری که نوشتیم بعدش "," میذاریم:

fruits = ["banana", "pear", "apple"]

وقتی میخوایم از آرایه ها استفاده کنیم باید اندیس یا شماره اون رو هم بهش بگیم. در زبان های برنامه نویسی اندیس از ۰ شروع میشه و مثلا اندیس apple در آرایه بالا ۲ میشه. ابتدا نام متغیر رو مینویسیم و بعدش [] و داخلش شماره اندیس مقدار رو مینویسیم.

بعد از اینکه آرایه رو ساختیم اگه بخوایم بهش مقداری اضافه کنیم میتونیم از عملگر >> استفاده کنیم:

یا میتونیم اندیس جدید آرایه رو تعریف کنیم:

برای اولین عضو آرایه از تابع first و برای آخرین عضوش از last استفاده میکنیم:

برای حذف مقداری از آرایه از تابع delete استفاده میکنیم و مقدار اون رو به تابع پس میکنیم:

از تابع uniq میتونیم برای برگرداندن مقدار های یکتا استفاده کنیم(دوستمون ژاپنی بوده و به جای اینکه unique بنویسه همینجوری ساده نوشته یونیک :D).

که میبینید اون مقدار هایی که دوتا هستند رو یکی کرده. میتونید بعد تابع ! رو بزارید که مقادیر رو تغییر بده. وگرنه اگه مثل قبل دوباره نام متغیر رو بزنید میبینید تغییری نکرده.

این حالت برای بعضی از توابع هست و میتونید تغییرات رو ذخیره کنید.

تابعی دیگر داریم که اجزای آرایه رو به هم میچسبونه و یدونه استرینگ میگیره که وقتی وصل کنه چی بینشون بذاره:

میتونیم از یه تابعی دیگر که میاد کل آرایه رو بصورت استرینگ در بیارید. چونکه همینجوری آرایه رو بیارید پرینت کنید میبینید که فقط مقادیر رو آورده:

بالا که زدیم fruits.to_s میبینیم که قبل از دابل کوت یه بک اسلش گذاشته. این کارو برا این میکنیم که به کامپایلر بفهمونیم که این داخل استرینگ هست نه یک کیورد. وگرنه رشته ای به این شکل در میومد:

"[" banana", "pear", "apple"]"

کامپایلر قاطی میکرد و میگفت که من نمیفهمم داری چی میگی. [ یه استرینگ هست ولی banana شروعش کجاست و اصلا من نمیفهمم که جلوی استرینگ چیزی نوشتی.

یا میتونیم برای حل این مشکل از کوتیشن ' استفاده کنیم که بتونیم اون رو توش جا بدیم.

یک چیز دیگری هم هست اینه که میتونید متغیر هارو توی استرینگ جا بذارید. اینطور که یه # بنویسید و جلوش یه کروشه یا کورلی بریس بنویسید و اسمشو تو متغیر بیارید:

که pear رو آورده تو خودش جا داده.

درضمن سیمبل ها هم داشتند از یاد میرفتند ولی اینجا میگم.

سیمبل ها چیز هایی هستند که مقدارشون با اسمشون برابره و مقدار دهی نمیشند. اگر مقدار دهیش کنید ارور میده.که اینجوری نوشته میشند:

:simble

کد بالا متغیری با نام simble میسازه که مقدارشم simble هست.


خوب دوستان فکر میکنم تا اینجا کافی باشه و شمارو به خداوند بزرگ میسپارم.

قسمت بعدی رو از لینک زیر بخونید:

https://virgool.io/ruby-lang/%D8%B2%D8%A8%D8%A7%D9%86-%D8%B1%D9%88%D8%A8%DB%8C-%D9%87%D8%B4-%D9%87%D8%A7-btbxoji2kejv

دلشاد باشید.