Go:
সাবস্ট্রিং বের করা
কিভাবে:
Go ভাষায়, string
টাইপটি বাইটের একটি রিড-ওনলি স্লাইস। সাবস্ট্রিংগুলি এক্সট্র্যাক্ট করার জন্য, মূলত slice
সিনট্যাক্সের পাশাপাশি লেন্থ চেকিংয়ের জন্য বিল্ট-ইন len()
ফাংশন এবং আরও জটিল অপারেশনগুলির জন্য strings
প্যাকেজের ব্যবহার করা হয়। এখানে আপনি কিভাবে এটি অর্জন করতে পারেন তার একটি উদাহরণ:
বেসিক স্লাইসিং
package main
import (
"fmt"
)
func main() {
str := "Hello, World!"
// "World" এক্সট্র্যাক্ট করা হচ্ছে
subStr := str[7:12]
fmt.Println(subStr) // আউটপুট: World
}
strings
প্যাকেজ ব্যবহার করে
আরও উন্নত সাবস্ট্রিং এক্সট্র্যাকশনের জন্য, যেমন একটি নির্দিষ্ট সাবস্ট্রিংয়ের পরে বা আগে স্ট্রিং এক্সট্র্যাক্ট করা, আপনি strings
প্যাকেজ ব্যবহার করতে পারেন।
package main
import (
"fmt"
"strings"
)
func main() {
str := "name=John Doe"
// "=" এর পরে সাবস্ট্রিং এক্সট্র্যাক্ট করা হচ্ছে
subStr := strings.SplitN(str, "=", 2)[1]
fmt.Println(subStr) // আউটপুট: John Doe
}
মনে রাখা প্রয়োজন যে Go এর স্ট্রিংগুলি UTF-8 এনকোডেড এবং যদি তারা মাল্টি-বাইট অক্ষর অন্তর্ভুক্ত করে তবে সরাসরি বাইট স্লাইস সবসময় বৈধ স্ট্রিং ফলাফল নাও দিতে পারে। ইউনিকোড সমর্থনের জন্য, range
বা utf8
প্যাকেজের ব্যবহার বিবেচনা করতে হবে।
ইউনিকোড অক্ষর সম্ভালানো
package main
import (
"fmt"
"unicode/utf8"
)
func main() {
str := "Hello, 世界"
// ইউনিকোড অক্ষর বিবেচনা করে সাবস্ট্রিং খুঁজছে
runeStr := []rune(str)
subStr := string(runeStr[7:])
fmt.Println(subStr) // আউটপুট: 世界
}
গভীর ডুব
Go তে সাবস্ট্রিং এক্সট্র্যাক্ট করা অত্যন্ত সহজ, এর স্লাইস সিনট্যাক্স এবং সম্পূর্ণ স্ট্যান্ডার্ড লাইব্রেরির কৃতিত্বে। ঐতিহাসিকভাবে, পূর্ববর্তী প্রোগ্রামিং ভাষাগুলিতে এ ধরনের টেক্সট ম্যানিপুলেশন সামলানোর জন্য আরও সরাসরি ফাংশন বা মেথড প্রদান করা হয়েছিল। তবে, Go এর পদ্ধতি নিরাপত্তা এবং দক্ষতা প্রাধান্য দেয়, বিশেষ করে এর অপরিবর্তনীয় স্ট্রিং এবং ইউনিকোড অক্ষরগুলির স্পষ্ট হ্যান্ডলিং যা রুনস মাধ্যমে সম্পাদন করা যায়।
যদিও সোজা স্লাইসিং পারফরম্যান্স দক্ষতা থেকে উপকৃত হয়, এটি সরাসরি UTF-8 অক্ষরগুলি হ্যান্ডেল করার জটিলতা বহন করে। rune
টাইপের প্রবর্তনে Go প্রোগ্রামের নিরাপদে ইউনিকোড টেক্সট হ্যান্ডল করা সম্ভব হয়ে উঠেছে, যা আন্তর্জাতিক অ্যাপ্লিকেশনের জন্য একটি শক্তিশালী বিকল্প তৈরি করে।
তাছাড়া, অন্যান্য ভাষার প্রোগ্রামারগণ হয়ত বিল্ট-ইন উচ্চ-স্তরের স্ট্রিং ম্যানিপুলেশন ফাংশনগুলি অনুপস্থিত বোধ করতে পারেন। তবে, Go এর স্ট্যান্ডার্ড লাইব্রেরীর strings
এবং bytes
প্যাকেজগুলিতে একটি সমৃদ্ধ ফাংশনের সেট অফার করা হয়েছে যা, যদিও একটু বেশি বয়লারপ্লেট প্রয়োজন, তবে সাবস্ট্রিং এক্সট্র্যাকশন সহ স্ট্রিং প্রসেসিংয়ের জন্য শক্তিশালী বিকল্প প্রদান করে।
সারাংশে, Go এর স্ট্রিং ম্যানিপুলেশনের চারপাশের ডিজাইন পছন্দগুলি এর লক্ষ্যগুলি প্রতিফলিত করে - আধুনিক, আন্তর্জাতিকীকৃত টেক্সট ডেটা নিয়ে কাজ করার ক্ষেত্রে সাধারণতা, দক্ষতা, এবং নিরাপত্তা। যদিও এটি একটু পরিবর্তন প্রয়োজন হতে পারে, Go সাবস্ট্রিং এক্সট্র্যাকশন এবং আরও অনেকের হ্যান্ডলিং জন্য কার্যকর এবং দক্ষ টুলস অফার করে।