Rust-এ সংখ্যার দুই ধরনের শ্রেণি আছে: ইন্টিজার (যা সাইনড বা আনসাইনড হতে পারে) এবং ফ্লোটিং-পয়েন্ট সংখ্যা।
একটি সংখ্যাসূচক টাইপের নাম দুইটি অংশ নিয়ে গঠিত:
নিচের সমন্বয়গুলো সম্ভব:
u8, i8
u16, i16
u32, i32, f32
u64, i64, f64
u128, i128
লক্ষ্য করুন, ফ্লোটিং-পয়েন্ট সংখ্যার জন্য কেবল ৩২-বিট আর ৬৪-বিট ভ্যারিয়েন্ট আছে।
Rust কোনো ইমপ্লিসিট টাইপ কনভার্সন করে না।
এর মানে, যদি আপনাকে একটি সংখ্যাসূচক টাইপকে অন্য একটিতে রূপান্তর করতে হয়, তবে তা আপনাকে স্পষ্টভাবে করতে হবে।
বড় টাইপ থেকে ছোট টাইপে রূপান্তর করলে (যেমন u64 থেকে u32) ডেটা হারিয়ে যেতে পারে।
ফ্লোটিং পয়েন্ট থেকে ইন্টিজারে রূপান্তর করলে দশমিক বিন্দুর পেছনের সবকিছু অবশ্যই হারিয়ে যাবে, যা কার্যত নিচের দিকে রাউন্ড করে দেয়।
এই অনুশীলনীতে আপনি একটি গাড়ি কারখানার অ্যাসেম্বলি লাইনের উৎপাদন বিশ্লেষণ করার কোড লিখবেন। অ্যাসেম্বলি লাইনের গতি 0 (বন্ধ) থেকে 10 (সর্বোচ্চ) পর্যন্ত হতে পারে।
সবচেয়ে কম গতিতে (1) প্রতি ঘণ্টায় 221টি গাড়ি তৈরি হয়। গতি বাড়ার সাথে সাথে উৎপাদন সরলরৈখিকভাবে বাড়ে। তাই গতি 4 হলে প্রতি ঘণ্টায় 4 * 221 = 884টি গাড়ি তৈরি হওয়া উচিত। তবে গতি বেশি হলে ত্রুটিপূর্ণ গাড়ি তৈরি হওয়ার সম্ভাবনাও বেড়ে যায়, আর সেগুলো পরে বাদ দিতে হয়। নিচের টেবিলে দেখানো হয়েছে গতি কীভাবে সফলতার হারকে প্রভাবিত করে:
1 থেকে 4: ১০০% সফলতার হার।5 থেকে 8: ৯০% সফলতার হার।9 এবং 10: ৭৭% সফলতার হার।আপনার হাতে দুটি কাজ।
প্রতি ঘণ্টায় অ্যাসেম্বলি লাইনের উৎপাদনের হার হিসাব করার একটি মেথড ইমপ্লিমেন্ট করুন, যেখানে সফলতার হারও বিবেচনায় নিতে হবে:
assembly_line::production_rate_per_hour(6)
// Returns: 1193.4
খেয়াল করুন, এখানে রিটার্ন করা মানটি একটি f64।
প্রতি মিনিটে কতগুলো সচল গাড়ি তৈরি হয়, তা হিসাব করার একটি মেথড ইমপ্লিমেন্ট করুন:
assembly_line::working_items_per_minute(6)
// Returns: 19
খেয়াল করুন, এখানে রিটার্ন করা মানটি একটি u32।
Exercism-এ সাইন আপ করুন, Rust ট্র্যাকের 99টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।