توی قسمت قبل اومدیم و محیط vscode رو برای توسعه با nim آماده کردیم.
امروز میخوایم اولین برنامه مون رو توی nim بنویسیم.
برای شروع ی فایل با پسوند nim توی vscode تون ایجاد کنید.
اولین دستوری که باید یادبگیرید تابع echo هست. این دستور هرچی که جلو اش بنویسیم رو میندازه توی کنسول.
خب حالا چطوری اجراش کنیم؟
میتونید با دستور زیر اون رو اجرا کنید
nim r <code.nim>
بجای <code.nim> اسم فایل خودتون رو بنویسید
خب همونطور که میدونید زبان nim ی زبان کامپایلی هست - یعنی اول برنامه رو به کد های باینری تبدیل میکنه و بعد اجراش میکنه
بعد از اجرای برنامه من چنین چیزی میبینم:
12.45wordc
اگر دوست ندارید این hint هایی که کامپایلر موقع کامپایل برنامه مینویسه رو ببینید، میتونید اینطوری برنامه تون رو اجرا کنید
nim --hints:off r <code.nim>
نکته: برای خروجی گرفتن (فایل exe در ویندوز) هم بجای حرف r ( که مخفف run هست ) میتونید کلمه c برای زبان C ، کلمه cc برای زبان cpp و کلمه js برای زبان javascript رو بنویسید تا به اون زبان ها تبدیل و کامپایل بشه. ( وقتی که r رو میزنید خودش به صورت خودکار زبان c رو انتخاب میکنه )
خب بریم سراغ موضوع اصلی پست
یک متغیر در زبان nim به این صورت تعریف میشه:
این روش ها هم برای تعریف متغیر مجازه:
خب ما بجای کلمه var متونیم از دوتا کلمه دیگه هم استفاده کنیم که فرقشون اینان:
برای برای فهم بهتر یک مثال میزنم.
تابع stdin.readline میاد و توی کنسول از کاربر یک خط ورودی میگیره ( ی چیزی مثل تابع input توی زبان پایتون یا getline در زبان cpp ) و اون رو به صورت string برمیگردونه ( string ها برای متن ها استفاده میشن )
در نهایت هم با دستور echo که امروز یادگرفتید میتونید مقدار اون متغیر ها و ثابت هارو توی کنسول نمایش بدید.
خب اینجا چند نوع ساده متغیری میگم . توی جلسه بعدی ان شا الله نوع های پیچیده تر رو میگم.
توی nim بهشون میگن bool
یک نوع داده ای که فقط دو تا مقدار میگیره false که معادلش میشه 0 و true که معادلش میشه 1
تابع های مقداری:
خروجی کنسول:
true true false true
توی nim چند نوع عدد صحیح داریم.
int[ 8, 16, 32, 64 ]
که بحای اون اعداد توی پرانتز هرکدوم میتونه قرار بگیره. به طور خودکار وقتی تنها کلمه int رو مینویسید، اگر کامپیوترتون 64 بیت باشه int64 انتخاب میشه و اگر 32 بیت باشه int32
یک سری نوع عدد صحیح هم داریم که منفی ندارن ( فقط صفر و مثبت هستن و قاعدتا فضا شون دو برابر int ها هست ) که بهشون میگن uint ( همون unsigned int توی cpp )
اونا هم مثل int ها از 8 تا 64 انتخاب دارن
اگر میخواید موقع تعریف عددی نوع دلخواهتون اعمال بشه میتونید از این روش ها برای تعریف ثابت ها یا متغیر هاتون استفاده کنید:
تابع های پرکاربرد که برای اعداد صحیح استفاده میشه:
ی سری تابع ها هم هست که فقط برای متغیرهای عددی استفاده میشه و جواب رو میریزه توی متغیر سمت چپ:
ی سری تابع ها هم وجود دارن که برای عملیات های باینری ( 0 و 1 ) هست که توضیحی در موردشون نمیدونم ولی خودتون میتونید امتحان کنید. ( فقط خواستم بدونید که هست )
تابع های ( and - or - not - xor , shr, shl): غیر از تابع not که پشت عدد یا متغیر میان بقیه بینشون میان.
خیلی شبیه به اعداد صحیح فقط دو نوع float32 و float64 داره که میتونید به صورت float خالی هم بنویسید.
تابع هاشون مثل اعداد صحیح هستن فقط تابع های باینری براشون موجود نیست و توی توابع متغیری هم تابع تقسیم ( =/ ) رو دارن و توی توابع عمومی هم تابع های div و mod رو ندارن
این نوع داده ای حرف های جدول ascii که 256 تا هستن رو میتونه ذخیره کنه
نحوه نوشتنشون به این صورته که یک حرف رو بین دوتا ( ' ) میزارید
با تابع ord میتونید اون کاراکتر رو به کد ascii اش تبدیل کنید ( که یک عدد بین 0 تا 256 هست )
و با تابع chr میتونید برعکس این کار رو انجام بدید
برای نوشتنشون اون متنتون رو بین دوتا ( " ) میزارید
تابع های مقداری:
تابع های متغیری:
خروجی که کنسول بهم میده:
> do my fingers hurt? < no they don't false true
فعلا چون که خیلی چیزی در مورد nim نمیدونید، بهتون تمرین نمیدم ?