আমরা সম্প্রতি আমার কাজটিতে একটি রুবি স্টাইল গাইডের সিদ্ধান্ত নিয়েছি। এর মধ্যে একটি হ'ল 80 টি অক্ষরের চেয়ে কোনও লাইন প্রশস্ত হওয়া উচিত নয়। যেহেতু এটি একটি রেলস প্রকল্প, আমাদের প্রায়শই স্ট্রিংগুলি কিছুটা দীর্ঘ হয় - যেমন " ব্যবহারকারী এক্স আপনাকে থিং ওয়াই সম্পর্কে একটি বার্তা প্রেরণ করতে চেয়েছিল " যা 80 অক্ষরের শৈলীর সীমাতে সর্বদা ফিট হয় না।
আমি বুঝতে পারি যে দীর্ঘ স্ট্রিং স্প্যানের একাধিক লাইন থাকার তিনটি উপায় রয়েছে:
- HEREDOC
- % প্রশ্ন {}
- আসল স্ট্রিং কনটেনটেশন।
যাইহোক, এই সমস্ত ক্ষেত্রে আরও গণনা চক্র গ্রহণ শেষ হয়, যা নির্বোধ বলে মনে হয়। স্পষ্টতই স্ট্রিং কনটেনটেশন, তবে এর জন্য HEREDOC
এবং %Q
আমাকে নতুন লাইনের সন্ধান করতে হবে, এরকম কিছু মাধ্যমে .gsub(/\n$/, '')
।
এটি করার কোনও বিশুদ্ধ বাক্য গঠন আছে, এটি কেবল একটি লাইনে পুরো স্ট্রিং থাকার সমতুল্য? লক্ষ্যটি হ'ল স্পষ্টতই, কোনও অতিরিক্ত চক্র ব্যয় না করা, কারণ আমি চাইছি আমার কোডটি আরও পড়ুন। (হ্যাঁ, আমি বুঝতে পেরেছি যে আপনাকে সেই ট্রেডফোকটি অনেকটা করতে হবে ... তবে স্ট্রিং দৈর্ঘ্যের জন্য এটি কেবল নির্বোধ বলে মনে হয়))
আপডেট: ব্যাকস্ল্যাশগুলি ঠিক আমি যা চাই তা নয় কারণ আপনি ইন্ডেন্টেশন হারাচ্ছেন, যা সত্যই স্টাইল / পঠনযোগ্যতাকে প্রভাবিত করে।
উদাহরণ:
if foo
string = "this is a \
string that spans lines"
end
আমি উপরেরটি পড়তে কিছুটা কঠিন মনে করি।
সম্পাদনা : আমি নীচে একটি উত্তর যুক্ত করেছি; তিন বছর পরে আমাদের এখন স্কুইগ্লি হেরিডোক।
\n
নতুন লাইনের চরিত্র রাখতে চান কিনা তা অস্পষ্ট । শীর্ষের উত্তর সেগুলি রাখে না — তবুও আপনার উত্তরটি তা করে। প্রশ্নটি "নতুন লাইনের স্ট্রাইপ না করে" বলছে - বর্ণনাটিতে "[...] আমাকে নতুন লাইনগুলি সরিয়ে ফেলতে হবে"।