আপনি সোশ্যাল মিডিয়ার বাজারে খুব খুব ছোট পোস্টের একটি ফাঁক খুঁজে পেয়েছেন। এখন Twitter ২৮০ ক্যারেক্টারের পোস্টের অনুমতি দেওয়ায়, দ্রুত সোশ্যাল মিডিয়া আপডেট চাওয়া মানুষদের চাহিদা পূরণ হচ্ছে না। আপনি নিজের একটি সোশ্যাল মিডিয়া নেটওয়ার্ক বানানোর সিদ্ধান্ত নিলেন।
আপনার প্রোডাক্টকে উল্লেখযোগ্য করে তুলতে আপনি এটিকে চরম পর্যায়ে নিয়ে যান এবং কেবল ৫টি বা তার কম ক্যারেক্টারের পোস্টের অনুমতি দেন। ৫ ক্যারেক্টারের বেশি যেকোনো পোস্ট ৫ ক্যারেক্টারে ছেঁটে দেওয়া উচিত।
আপনার ইউজাররা যাতে নিজেদের পূর্ণভাবে প্রকাশ করতে পারে, সেজন্য আপনি ইমোজি আর অন্যান্য ইউনিকোডের অনুমতি দেন।
কাজটি হলো ইনপুট স্ট্রিংগুলোকে ৫ ক্যারেক্টারে ছেঁটে দেওয়া।
ডিজিটালভাবে সংরক্ষিত টেক্সটকে বাইটের একটি ধারায় রূপান্তর করতে হয়। ক্যারেক্টারকে বাইটে ম্যাপ করার তিনটি প্রচলিত উপায় আছে।
UTF-8 আর UTF-16 দুটোই ইউনিকোড এনকোডিং, অর্থাৎ এরা বিশাল পরিসরের ক্যারেক্টার উপস্থাপন করতে পারে, যার মধ্যে আছে:
UTF-8 আর UTF-16 দুটোই ভ্যারিয়েবল লেংথ এনকোডিং, অর্থাৎ ভিন্ন ভিন্ন ক্যারেক্টার ভিন্ন পরিমাণ জায়গা নেয়।
'a' অক্ষরটি আর '😛' ইমোজিটি বিবেচনা করুন। UTF-16-তে অক্ষরটি ২ বাইট নেয়, কিন্তু ইমোজিটি নেয় ৪ বাইট।
এই অনুশীলনীর আসল কৌশল হলো, ইউনিকোড কোড ইউনিটের বদলে ইউনিকোড ক্যারেক্টার (কোডপয়েন্ট) ঘিরে তৈরি করা API ব্যবহার করা।
Go সোর্স কোডের স্ট্রিং (এবং ইউনিট টেস্টের স্ট্রিং) UTF-8.
স্ট্রিং-এ বাইট থাকে, যা রুন প্রকাশ করে।
Go-তে বেশিরভাগ ক্ষেত্রে একটি "কোড ইউনিট" হলো একটি byte এবং একটি "কোড পয়েন্ট" হলো একটি rune.
আরও বিস্তারিত জানতে Go-তে স্ট্রিং, বাইট, রুন ও ক্যারেক্টার দেখুন।
Exercism-এ সাইন আপ করুন, Go ট্র্যাকের 35টি কনসেপ্ট167টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।