Go:
স্ট্রিং ইন্টারপোলেট করা
কিভাবে:
Go-তে, স্ট্রিং ইন্টারপোলেশন সাধারণত fmt
প্যাকেজের মাধ্যমে অর্জন করা হয়, বিশেষত Sprintf
ফাংশনের মাধ্যমে, যা আপনাকে বিন্যাস ক্রিয়াশীল স্থান নির্ধারণ করে স্ট্রিংয়ে ভেরিয়েবল ইঞ্জেক্ট করতে দেয়। বিন্যাস স্ট্রিংয়ে ক্রিয়াশীল স্থানগুলি হলো প্লেসহোল্ডার এবং দেওয়া ভেরিয়েবলের মান দ্বারা প্রতিস্থাপিত হয়। এখানে কিভাবে এটি ব্যবহার করা হয়:
package main
import (
"fmt"
)
func main() {
name := "Jane"
age := 28
// Sprintf ব্যবহার করে স্ট্রিং ইন্টারপোলেশন
message := fmt.Sprintf("Hello, my name is %s and I am %d years old.", name, age)
fmt.Println(message) // আউটপুট: Hello, my name is Jane and I am 28 years old.
}
মনে রাখবেন যে %s
স্ট্রিংয়ের জন্য এবং %d
পূর্ণসংখ্যার জন্য ব্যবহৃত হয়। fmt
প্যাকেজের ডকুমেন্টেশনে বিভিন্ন ডেটা টাইপের জন্য বিন্যাস ক্রিয়াপদের একটি সম্পূর্ণ তালিকা উপলব্ধ।
গভীর দিকে
বিভিন্ন প্রোগ্রামিং ভাষায় স্ট্রিং ইন্টারপোলেশনের ধারণা বিদ্যমান, যদিও বিভিন্ন সিনট্যাক্স এবং ক্ষমতা রয়েছে। Go-তে, fmt
প্যাকেজের Sprintf
ফাংশনটি সবচেয়ে প্রচলিতভাবে ব্যবহৃত আসল উপায় হলেও, এটি সর্বদা সবচেয়ে দক্ষ নাও হতে পারে, বিশেষ করে যখন সহজ সংঘটন বা খুবই কর্মক্ষমতা-সংবেদনশীল কোডে কাজ করা হয়।
fmt
প্যাকেজটি রানটাইমে ভেরিয়েবলগুলির টাইপ গতিশীলভাবে ব্যাখ্যা করতে প্রতিচ্ছবি ব্যবহার করে, যা যদিও নমনীয়, তবে ওভারহেড বাড়ায়। যেখানে কর্মক্ষমতা জরুরি, সেখানে সরাসরি স্ট্রিং সংঘটন বা strings.Builder
টাইপ আরও ভালো বিকল্প হতে পারে। সরাসরি সংঘটন সোজা কিন্তু একাধিক ভেরিয়েবল নিয়ে কাজ করলে জটিল হতে পারে। অন্যদিকে, strings.Builder
লুপে বা অনেকগুলি ভেরিয়েবল নিয়ে কাজ করার সময় জটিল স্ট্রিং তৈরি করতে একটি আরও কর্মক্ষম এবং পঠনীয় উপায় উপলব্ধ করে:
var sb strings.Builder
sb.WriteString("Hello, my name is ")
sb.WriteString(name)
sb.WriteString(" and I am ")
sb.WriteString(strconv.Itoa(age))
sb.WriteString(" years old.")
message := sb.String()
fmt.Println(message) // একই আগের মত আউটপুট দেয়
সবশেষে, fmt.Sprintf
, সরাসরি সংঘটন, এবং strings.Builder
মধ্যে পছন্দ সম্পূর্ণ ভাবে আপনার অ্যাপ্লিকেশনের নির্দিষ্ট প্রয়োজন, যেমন তৈরি হতে চলেছে স্ট্রিংয়ের জটিলতা এবং কর্মক্ষমতা বিবেচনার উপর নির্ভর করে।