স্ট্রিং এর দৈর্ঘ্য চিহ্নিত করা

Elixir:
স্ট্রিং এর দৈর্ঘ্য চিহ্নিত করা

কিভাবে:

এলিক্সিরে, আপনি String.length/1 ফাংশন ব্যবহার করে একটি স্ট্রিং এর দৈর্ঘ্য পেতে পারেন। এটি কিভাবে করবেন তা নীচে দেওয়া হল:

my_string = "Hello, World!"
length = String.length(my_string)
IO.puts(length)

নমুনা আউটপুট:

13

গভীর ডুব

অন্তরভাগে, এলিক্সির স্ট্রিংগুলি UTF-8 কোডিত বাইনারিজ হিসেবে থাকে। প্রতিটি অক্ষর এক থেকে চার বাইট পর্যন্ত হতে পারে। তাই, আমরা String.length/1 কল করলে, আমরা কেবল বাইট গণনা করি না; আমরা ইউনিকোড গ্রাফিমস গণনা করি, যা আমরা অক্ষর হিসেবে অনুভব করি।

ঐতিহাসিকভাবে, অনেক ভাষায় স্ট্রিং দৈর্ঘ্য অপারেশনগুলি বাইট-কেন্দ্রিক ছিল এবং এটি বহু-বাইট অক্ষরের জন্য ভালভাবে বিবেচনা করেনি। এলিক্সিরের দৃষ্টিভঙ্গি আধুনিক এবং ইউনিকোড-বান্ধব শুরু থেকেই।

এর বিকল্প হিসেবে, আপনি ম্যানুয়ালি গ্রাফিমস গণনা করতে পারেন রিকার্সন বা লুপ ব্যবহার করে, কিন্তু তা অপ্রয়োজনীয় ও অকার্যকর। String.length/1 ইতিমধ্যেই অনুকূলিত এবং উপযুক্ত।

এলিক্সিরের বাস্তবায়নে Erlang NIF (Native Implemented Function) ব্যবহার করা হয় String.length/1 এর জন্য, যা এটিকে দ্রুতগতি প্রদান করে। গ্রাফিমসের পরিবর্তে বাইট গণনা করা হয় byte_size/1 দ্বারা, যা স্ট্রিং এর বাইনারি প্রতিনিধিত্বের কাঁচা বাইটগুলি গণনা করে—যা নিম্নস্তরের অপারেশনে উপযোগী যেখানে এনকোডিং গুরুত্বপূর্ণ নয়।

দেখুন ও