Gleam-এ স্ট্রিং হলো ডাবল কোটেশন চিহ্ন দিয়ে ঘেরা অপরিবর্তনীয় টেক্সট। এগুলো ইউনিকোড ক্যারেক্টার সমর্থন করে এবং মাল্টি-লাইন হতে পারে।
let greeting = "Hello, Joe! 📞"
let multi_line_string = "one
two
three"
<> অপারেটর দিয়ে স্ট্রিংগুলোকে জোড়া লাগানো যায়:
let name = "Mike"
"Hello, " <> name <> "!"
// -> "Hello, Mike!"
স্ট্যান্ডার্ড লাইব্রেরির gleam/string মডিউলটি স্ট্রিং নিয়ে কাজ করার জন্য ফাংশন সরবরাহ করে।
কেস এক্সপ্রেশনে স্ট্রিং ম্যাচ করা যায়:
pub fn on_an_excellent_adventure(name: String) -> Bool {
case name {
"Bill" -> True
"Ted" -> True
_ -> False
}
}
আপনি যদি একটি স্ট্রিংয়ের শুরুটা ম্যাচ করতে চান আর বাকিটা একটি ভ্যারিয়েবলে অ্যাসাইন করতে চান, তাহলে <> অপারেটর প্যাটার্নটি ব্যবহার করতে পারেন:
pub fn profession(name: String) -> String {
case name {
"Dr " <> rest -> rest <> " is a doctor"
_ -> "I'm not sure what " <> name <> " does"
}
}
এই অনুশীলনীতে আপনি লগ-লাইন প্রসেস করবেন।
প্রতিটি লগ লাইন একটি স্ট্রিং, যা এভাবে ফরম্যাট করা থাকে: "[<LEVEL>]: <MESSAGE>".
এখানে তিনটি ভিন্ন লগ লেভেল আছে:
INFOWARNINGERRORআপনার সামনে তিনটি কাজ আছে; প্রতিটিতে একটি লগ লাইন দেওয়া হবে এবং সেটি নিয়ে আপনাকে কিছু একটা করতে বলা হবে।
লগ লাইনের মেসেজ রিটার্ন করার জন্য message ফাংশনটি ইমপ্লিমেন্ট করুন:
message("[ERROR]: Invalid operation")
// -> "Invalid operation"
শুরুতে বা শেষে থাকা যেকোনো হোয়াইটস্পেস মুছে ফেলা উচিত:
message("[WARNING]: Disk almost full\r\n")
// -> "Disk almost full"
লগ লাইনের লগ লেভেল রিটার্ন করার জন্য log_level ফাংশনটি ইমপ্লিমেন্ট করুন; লগ লেভেলটি ছোট হাতের অক্ষরে রিটার্ন করতে হবে:
log_level("[ERROR]: Invalid operation")
// -> "error"
লগ লাইনটি নতুন করে ফরম্যাট করার জন্য reformat ফাংশনটি ইমপ্লিমেন্ট করুন; এতে মেসেজটি আগে থাকবে আর তার পরে বন্ধনীর মধ্যে থাকবে লগ লেভেল:
reformat("[INFO]: Operation completed")
// -> "Operation completed (info)"
Exercism-এ সাইন আপ করুন, Gleam ট্র্যাকের 33টি কনসেপ্ট122টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।