درس ۳ از ۲۵ · آغاز راه

گونه‌ها

سلام زبانی ایستا است: گونه‌ی هر مقدار پیش از اجرا مشخص است و مترجم نمی‌گذارد گونه‌های ناسازگار با هم قاطی شوند.

گونه‌های پایه

types-basic.salam
روال ریشه:
    عدد := ۴۲
    اعشاری := ۳.۱۴
    متن := "سلام"
    درستی := نادرست
    حرف := u'س'
    سرچاپ عدد, اعشاری, متن, درستی, حرف
پایان
خروجی42 3.14 سلام false س
گونهانگلیسیکاربرد
صحیحintعدد صحیح ۳۲ بیتی
صحیح۸، صحیح۱۶، صحیح۶۴i8، i16، i64عدد صحیح با اندازه‌ی مشخص
طبیعی، طبیعی۸ تا طبیعی۶۴uint، u8 تا u64عدد صحیح بدون علامت
اعشار۶۴، اعشار۳۲f64، f32عدد اعشاری
منطقیboolدرست یا نادرست
رشتهstrمتن (یونیکد)
نویسهcharیک نویسه، مثل u'س'
اندازه مثبت، اندازهusize، sizeعدد هم‌اندازه‌ی نشانی حافظه

اندازه و مبنای اعداد

عددها را می‌توانید در مبنای شانزده (0xFF)، دو (0b1010) و هشت (0o17) هم بنویسید و برای خوانایی رقم‌ها را با _ جدا کنید.

types-ints.salam
روال ریشه:
    کوچک := ۱۲۰ برگردان صحیح۸
    بزرگ := ۹_۰۰۰_۰۰۰_۰۰۰ برگردان صحیح۶۴
    مثبت := ۴۰۰۰۰۰۰۰۰۰ برگردان طبیعی
    سرچاپ کوچک, بزرگ, مثبت
    سرچاپ 0xFF, 0b1010, 0o17
پایان
خروجی120 9000000000 4000000000 255 10 15

sizeof اندازه‌ی هر گونه را بر حسب بایت می‌دهد:

types-sizeof.salam
ساختار نقطه:
    ایکس: صحیح
    ایگرگ: صحیح
پایان

روال ریشه:
    سرچاپ "صحیح۸:", sizeof(صحیح۸)
    سرچاپ "صحیح:", sizeof(صحیح)
    سرچاپ "صحیح۶۴:", sizeof(صحیح۶۴)
    سرچاپ "اعشار۶۴:", sizeof(اعشار۶۴)
    سرچاپ "نقطه:", sizeof(نقطه)
پایان
خروجیصحیح۸: 1 صحیح: 4 صحیح۶۴: 8 اعشار۶۴: 8 نقطه: 8

تبدیل گونه

سلام گونه‌ها را خودکار به هم تبدیل نمی‌کند؛ با برگردان تبدیل را صریح بنویسید. تقسیم دو عدد صحیح، صحیح است و بخش اعشاری کنار گذاشته می‌شود. به صحیح() متن را به عدد تبدیل می‌کند.

types-cast.salam
روال ریشه:
    سرچاپ ۷ / ۲
    سرچاپ ۷ % ۲
    سرچاپ (۷ برگردان اعشار۶۴) / ۲.۰
    عدد := ۳.۹
    سرچاپ عدد برگردان صحیح
    سرچاپ "۴۲".به صحیح() + ۸
پایان
خروجی3 1 3.5 3 50