Rust:
সাবস্ট্রিং বের করা
কীভাবে:
চলুন Rust দিয়ে আমাদের হাত নোংরা করি। ধরুন আপনার কাছে একটি স্ট্রিং আছে, এবং আপনি এর একটি নির্দিষ্ট অংশ নিতে চাইছেন। আপনি স্লাইসিং &str[start..end]
ব্যবহার করতে পারেন যেখানে start
হলো আপনি যেখান থেকে শুরু করতে চান, এবং end
হলো আপনি যেখানে শেষ করতে চান।
fn main() {
let text = "The quick brown fox jumps over the lazy dog";
let quick_brown = &text[4..15]; // ৪র্থ থেকে ১৪তম অনুক্রমিকে স্লাইস
println!("{}", quick_brown); // প্রদর্শন করে: quick brown
}
স্লাইসিং পরিচ্ছন্ন কিন্তু যদি আপনার অনুক্রমিক চরিত্র সীমানার উপর না পড়ে তাহলে এটি প্যানিকের সৃষ্টি করতে পারে। এটি প্রতিরোধ করতে, Rust get
মেথড যেমন প্রদান করে:
fn main() {
let text = "The quick brown fox";
match text.get(4..15) {
Some(substring) => println!("{}", substring), // নিরাপদ স্লাইসিং
None => println!("Slice is out of bounds."),
}
}
// প্রদর্শন করে: quick brown
এতেই আপনি Rust-এ সাবস্ট্রিং এক্সট্রাকশনের একটি দ্রুত চাক্ষুষ করলেন। দেখুন কিভাবে সহজ ছিল!
গভীর ডাইভ
UTF-8 এনকোডেড সিরিয়ালে যেমন Rust ভাষাগুলিতে স্লাইসিং একটু জটিল — চরিত্রগুলি একাধিক বাইট হতে পারে! Rust এর আগে, C ভাষার মতো ভাষাগুলিতে, স্ট্রিং হ্যান্ডলিং ম্যানুয়ালি মেমোরি পরিচালনা করা অপরাধপূর্ণ মাথাব্যথার কারণ হত।
Rust-এর str
টাইপ হলো UTF-8 বাইটের একটি ক্রম, সবসময় বৈধ UTF-8। সাবস্ট্রিং নিরাপদে এক্সট্রাক্ট করা এই চরিত্র সীমানাগুলোকে সম্মান করে।
স্লাইসিং ছাড়া বিকল্পের মধ্যে অন্তর্ভুক্ত আছে ইটারেটর বা রেগেক্স ব্যবহার করে আরও জটিল প্যাটার্নের জন্য, কিন্তু এগুলোর অতিরিক্ত ওভারহেড আসে। স্লাইসিং করার সময়, Rust রানটাইমে বাইট অনুক্রমিক চর সীমানার সাথে মেলে কিনা তা পরীক্ষা করে, অবৈধ স্লাইস থেকে সম্ভাব্য ক্রাশ প্রতিরোধ করে।
আরও দেখুন
- স্ট্রিংসের উপর Rust বই: https://doc.rust-lang.org/book/ch08-02-strings.html
- স্ট্রিংস– Rust by Example: https://doc.rust-lang.org/rust-by-example/std/str.html
str
এর জন্য Rust ডকস: https://doc.rust-lang.org/std/primitive.str.html