தொகுதி பாடங்கள் (2/2)
பழமையான வகைகள்
துரு என்பது நிலையாக தட்டச்சு செய்யப்பட்ட மொழி, அதாவது தொகுக்கும் நேரத்தில் அனைத்து மாறிகளின் வகையையும் அது அறிந்திருக்க வேண்டும். பொதுவாக, கம்பைலர் ஒதுக்கப்பட்ட மதிப்பின் அடிப்படையில் வகையை ஊகிக்க முடியும், ஆனால் சில நேரங்களில் அதை கைமுறையாகக் குறிப்பிடுவது அவசியமாகவோ அல்லது உதவியாகவோ இருக்கும்.
ரஸ்டில் உள்ள பழமையான வகைகள் இரண்டு முக்கிய வகைகளாகப் பிரிக்கப்படுகின்றன: ** ஸ்கேலர்கள்** (ஒற்றை மதிப்பு) மற்றும் ** கலவைகள்** (மதிப்புகளின் குழு).
அளவுகோல் வகைகள்
ஸ்கேலர் வகைகள் ஒற்றை மதிப்பைக் குறிக்கின்றன. துரு நான்கு அடிப்படை அளவுகோல் வகைகளைக் கொண்டுள்ளது:
- முழு எண்கள்: முழு எண்கள். அவர்கள் கையொப்பமிடலாம் (
i8,i16,i32,i64,i128,isize) அல்லது கையொப்பமிடப்படாத (__LINEYTOu16,u32,u64,u128,usize). இயல்பு வகைi32. - மிதக்கும் புள்ளி: தசம புள்ளிகள் கொண்ட எண்கள். அவை
f32அல்லதுf64(இரட்டைத் துல்லியம், இயல்புநிலை) ஆக இருக்கலாம். - பூலியன்கள்:
trueஅல்லதுfalse(வகைbool) உடன் தர்க்கரீதியான உண்மையைக் குறிக்கவும். - எழுத்துகள்: ஒற்றை மேற்கோள்களில் இணைக்கப்பட்ட ஒற்றை யூனிகோட் அளவிடுதல் மதிப்பு (வகை
char), எ.கா.,'a','ℤ', அல்லது ஈமோஜி AGYTOK_IN_21
வெளிப்படையான வகை சிறுகுறிப்புக்கான எடுத்துக்காட்டு:
let x: i64 = 42;
let y: f64 = 3.1415;
let is_rust_awesome: bool = true;
let heart_emoji: char = '❤';கலவை வகைகள்
கூட்டு வகைகள் பல மதிப்புகளை ஒரு வகையாக தொகுக்கலாம். துரு இரண்டு முக்கிய பழமையான கலவை வகைகளைக் கொண்டுள்ளது:
டூப்பிள்ஸ்
ஒரு tuple பல்வேறு வகைகளின் மதிப்புகளை ஒரு நிலையான அளவு சேகரிப்பில் குழுவாக்குகிறது:
let person: (String, i32) = (String::from("Alice"), 30);
// Destructuring to extract values
let (name, age) = person;
// Direct access with index using dot (.)
let name_direct = person.0;
let age_direct = person.1;வரிசைகள் (நிலையான அளவு பட்டியல்கள்)
ஒரு வரிசை ஒரே வகையின் பல கூறுகளை அடுக்கில் சேமிக்கப்பட்ட நிலையான அளவு சேகரிப்பில் தொகுக்கிறது:
let numbers = [1, 2, 3, 4, 5]; // Inferred as [i32; 5]
let first = numbers[0]; // Access by index
let third = numbers[2];வரிசை எல்லைகளுக்கு வெளியே உள்ள குறியீட்டை அணுக முயற்சித்தால் (எ.கா., numbers[10]), அங்கீகரிக்கப்படாத நினைவக அணுகலை அனுமதிப்பதற்குப் பதிலாக இயக்க நேரத்தில் Rust உடனடியாக செயலிழக்கும் (பீதி).
ஒப்பீடு
| அம்சம் | Tuple | வரிசை |
|---|---|---|
| ** உறுப்பு வகைகள்** | வித்தியாசமாக இருக்கலாம் | ஒரே மாதிரி இருக்க வேண்டும் |
| அளவு | நிலையான | நிலையான |
| அணுகல் | புள்ளி வழியாக அட்டவணை (எ.கா., .0) | சதுர அடைப்புக்குறிகள் (எ.கா., [0]) |
நீங்களே முயற்சி செய்து பாருங்கள்
வயது 30 (முழு எண்) மற்றும் மதிப்பெண் 95.5 (ஃப்ளோட்) ஆகியவற்றைக் கொண்ட டூப்பிள் பெயரிடப்பட்ட புள்ளிவிவரங்களை அறிவிக்கவும். அடுத்து, டூபிளின் இரண்டாவது உறுப்பை அதன் குறியீட்டைப் பயன்படுத்தி நேரடியாக அணுகுவதன் மூலம் ஸ்கோர் திரையில் அச்சிடவும்.
குறிப்பைக் காட்டு
`லெட் ஸ்டேட்ஸ் = (30, 95.5);` உடன் டுபிளை உருவாக்கவும். `println!` மேக்ரோவில் உள்ள `stats.1` ஐப் பயன்படுத்தி இரண்டாவது உறுப்பை அணுகவும்.
3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்
1 முதல் 5 வரையிலான முழு எண் மதிப்புகளைக் கொண்ட எண்களின் வரிசையை அறிவிக்கவும். வரிசையின் மூன்றாவது உறுப்பை (இண்டெக்ஸ் 2) திரையில் println ஐப் பயன்படுத்தி அச்சிடவும்!.
குறிப்பைக் காட்டு
`லெட் எண்கள் = [1, 2, 3, 4, 5];` உடன் வரிசையை அறிவித்து, மூன்றாவது உறுப்பை `[2]` உடன் அட்டவணைப்படுத்துவதன் மூலம் அணுகவும்.
3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்
டூப்பிள் `லெட் பாயிண்ட் = (10, 20);` கொடுக்கப்பட்டால், `x` மற்றும் `y` என பெயரிடப்பட்ட இரண்டு மாறிகளில் மதிப்புகளைப் பிரித்தெடுக்க டிஸ்ட்ரக்சரிங் பயன்படுத்தவும். பின்னர், `x` மற்றும் `y` ஆகியவற்றின் கூட்டுத்தொகையை அச்சிடவும்.
குறிப்பைக் காட்டு
tuple ஐ சிதைக்க `let (x, y) = point;` என்ற தொடரியல் பயன்படுத்தவும், பின்னர் `println!` இல் மாறிகளை கூட்டவும்.
3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்