সকলেই জানেন যে, কমপক্ষে সি-তে আপনি printfকোনও ফর্ম্যাট স্ট্রিং মুদ্রণের জন্য ফাংশনগুলির পরিবার ব্যবহার করেন । এবং এই ফাংশনগুলি একটি ফর্ম্যাট স্পেসিফায়ারের সূচনা নির্দেশ করতে শতকরা চিহ্ন ( %) ব্যবহার করে। উদাহরণস্বরূপ, এর %dঅর্থ একটি মুদ্রণ করা intএবং এর %uঅর্থ একটি মুদ্রণ করা unsigned int। যদি আপনি কীভাবে printfফাংশন এবং ফর্ম্যাট প্লেসোল্ডারদের কাজ করে তার সাথে অপরিচিত হন বা কেবল একটি রিফ্রেশার প্রয়োজন হয়, উইকিপিডিয়া নিবন্ধটি শুরু করার জন্য ভাল জায়গা।
আমার প্রশ্ন হ'ল, এটির মূলত কারণ ছিল বা ভবিষ্যতে ফর্ম্যাট স্পেসিফায়ার হিসাবে নির্বাচিত হওয়ার কোনও বিশেষ কারণ আছে কি?
স্পষ্টতই সিদ্ধান্তটি অনেক আগে হয়েছিল (এমনকি সি ভাষার পূর্বসূরীর পক্ষে খুব সম্ভবত), এবং তখন থেকেই এটি কম-বেশি "স্ট্যান্ডার্ড" হয়ে গেছে (কেবল সি-তে নয়, অন্যান্য ভাষার বিশাল অ্যারেতেও যে এর সিনট্যাক্সটি বিভিন্ন ডিগ্রীতে গ্রহণ করেছে), তাই এটি পরিবর্তিত হতে খুব বেশি দেরি। তবে আমি এখনও আগ্রহী যদি কারও কাছে এই পছন্দটি কেন প্রথম স্থানে করা হতে পারে এবং যদি একইরকম কার্যকারিতা সহ একটি নতুন ভাষা ডিজাইন করা হয় তবে এটি পছন্দ হিসাবে এখনও বোধগম্য হয় কিনা।
উদাহরণস্বরূপ, সি # (এবং। নেট ভাষার অন্যান্য পরিবার) এর সাথে মাইক্রোসফ্ট স্ট্রিং ফর্ম্যাটিং ফাংশনগুলির ক্রিয়াকলাপ সম্পর্কে কিছুটা আলাদা সিদ্ধান্ত নিয়েছে। যদিও সেখানে কিছুটা ধরণের সুরক্ষা প্রয়োগ করা যেতে পারে ( printfসি এর প্রয়োগের বিপরীতে ), এবং সুতরাং এটি সম্পর্কিত প্যারামিটারের প্রকারের ইঙ্গিত অন্তর্ভুক্ত করা অপ্রয়োজনীয়, তারা শূন্য-সূচকযুক্ত জোড়গুলি বক্রাকার ধনুর্বন্ধনী ব্যবহার করার সিদ্ধান্ত নিয়েছে ( {}) বিন্যাস নির্দিষ্টকরণ হিসাবে, যেমন:
string output = String.Format("In {0}, the temperature is {1} degrees Celsius.",
"Texas", 37);
Console.WriteLine(output);
// Output:
// In Texas, the temperature is 37 degrees Celsius.
String.Formatপদ্ধতির ডকুমেন্টেশনে আরও তথ্য রয়েছে যেমন সাধারণভাবে সম্মিলিত বিন্যাস সম্পর্কিত এই নিবন্ধটি রয়েছে তবে সঠিক বিবরণটি গুরুত্বহীন। মুল বক্তব্যটি হ'ল তারা %বিন্যাস নির্দিষ্টকরণের সূচনা করার জন্য ব্যবহারের দীর্ঘকালীন অনুশীলনটি ত্যাগ করে । সি ভাষাটি সহজেই ব্যবহার করতে পারত {d}এবং {u}, তবে তা হয়নি। কেন এই সিদ্ধান্তটি পূর্ববর্তী ক্ষেত্রে অর্থবোধ করে, এবং নতুন বাস্তবায়নগুলি এটিকে অনুসরণ করা উচিত কিনা সে সম্পর্কে কারও কোনও ধারণা আছে?
স্পষ্টতই এমন কোনও চরিত্র নেই যা বেছে নিতে পারা যায় যা এড়াতে পারা না হয় যাতে এটি নিজেই স্ট্রিংয়ের মধ্যে অন্তর্ভুক্ত করা যায়, তবে তাদের মধ্যে দুটি ব্যবহার করেই সমস্যাটি ইতিমধ্যে বেশ সমাধান হয়ে গেছে । অন্যান্য কি বিবেচনা প্রাসঙ্গিক?
{u}পরিবর্তে %uএটি ব্যবহার করা সম্ভব হবে তবে এর কোনও উল্লেখযোগ্য সুবিধা থাকবে? এটি বেশিরভাগ স্বেচ্ছাসেবী পছন্দ বলে মনে হচ্ছে।
{}বাক্য গঠনটি বেছে নিয়েছে যাতে সি # শিখার লোকেরা অন্য কিছু শিখতে শুরু করে না? আমার বিশ্বাস করা খুব কঠিন যে এটি তাদের ডিজাইনের সিদ্ধান্তের একটি অংশ ছিল, এমনকি যদি কোনও হয় তবে was আপনি কি আপনার বক্তব্যটি কোনওভাবে ব্যাকআপ করতে পারবেন?
%ফর্ম্যাটিংটি পরিত্যাগ করেছে (অনেক উচ্চতর রূপের) কারণ পরবর্তীটি আরও নমনীয়তার প্রস্তাব দেয়। {}