রুবির কি পদ্ধতিতে তৈরি স্ট্রিংস স্টার্টস ("এবিসি") রয়েছে?


200

রুবির কি এমন কোনও some_string.starts_with("abc")পদ্ধতি রয়েছে যা অন্তর্নির্মিত ছিল?



7
ঘটনাক্রমে, আপনি রুবি সম্পর্কে জিজ্ঞাসা করছেন, বা রেল সম্পর্কে?
অ্যান্ড্রু গ্রিম

উত্তর:


339

একে বলা হয় String#start_with?, নয় String#startswith: রুবিতে, বুলিয়ান-ইশ পদ্ধতির নামগুলি শেষ হয় ?এবং পদ্ধতির নামগুলির শব্দগুলি একটি দিয়ে পৃথক করা হয় _। কোথায় sগিয়েছিল তা নিশ্চিত নয় , ব্যক্তিগতভাবে আমি String#starts_with?প্রকৃত চেয়ে বেশি পছন্দ করতামString#start_with?


9
মাত্জ বলেছেন যে তিনি এটিকে ছাড়াই পছন্দ করেন তবে দ্বিতীয় ব্যক্তির মতো একক বা তৃতীয় ব্যক্তির মতো দেখা যায়।
অ্যান্ড্রু গ্রিম

5
স্ট্রিং # start_with? রুবি ১.৮..7 এবং ১.৯.০ এ প্রবর্তিত হয়েছিল - পুরানো সংস্করণগুলির জন্য আপনি অন্যান্য উত্তরে উল্লিখিত রেগেক্স বা সূচক সংস্করণগুলির একটি ব্যবহার করতে পারেন।
হামিশ ডাউনার

3
রেলগুলিতে আপনি স্ট্রিং # স্টার্ট_ও ব্যবহার করতে পারেন?
আবদো

3
@anthropomorphic github.com/rails/rails/blob/... ; এটি স্ট্রিং # স্টার্ট_উইথের একটি উপনাম?
আবদো

10
@ অ্যান্ড্রুগ্রিম একমাত্র সমস্যা যে "স্ট্রিং" তৃতীয় ব্যক্তি একা! (এরগো, 'গুলি' বাদ দেওয়া উচিত হয়নি)।
ব্যবহারকারী 456584

41

আপনার প্রশ্নের শিরোনাম এবং আপনার প্রশ্ন শরীর আলাদা। রুবির স্টার্ট_ও নেই? পদ্ধতি। পাগল , যা একটি রুবি হয় ফ্রেমওয়ার্ক অবশ্য আছে , sepp2k যুক্তরাষ্ট্রের মতো। এটির জন্য ডকুমেন্টেশনের লিঙ্কটির জন্য তাঁর উত্তর সম্পর্কে তাঁর মন্তব্য দেখুন।

আপনি সর্বদা নিয়মিত প্রকাশটি ব্যবহার করতে পারেন যদিও:

if SomeString.match(/^abc/) 
   # SomeString starts with abc

^ নিয়মিত ভাবের অর্থ "স্ট্রিংয়ের শুরু" "


আমি সাবজেক্টটি + বোড সংমিশ্রণটি নিয়েছি যার অর্থ হ'ল "রুবির একটি সূচনা_পথের পদ্ধতি নেই rail রেল কি?"।
sepp2k

@ sepp2k, তবে এটি ?প্রশ্নের শিরোনামে রয়েছে)
নাকিলন

স্ট্রিং শুরু হয়েছে? রুবি ১.৯ থেকে ( eigenclass.org/hiki/Changes+in+ রুবি +1.9 #l124 )
স্টেনস্লাগ

4
@ স্টেনস্লাগ - রুবি ১.৮..7 এরও কি শুরু আছে? - ডকুমেন্টেশন এবং 1.8.7 রিলিজ নোট
হামিশ ডাউনার

স্ট্রিং ল্যাটারালগুলি থেকে রেজিক্সগুলি তৈরি করার সময় সাবধানতা অবলম্বন করুন - কোনও বিশেষ অক্ষর এড়াতে ভুলবেন না। সেই
ফাইয়ের

17

এটি যদি কোনও নন-রেল প্রকল্পের জন্য হয় তবে আমি ব্যবহার করব String#index:

"foobar".index("foo") == 0  # => true

9
এটি অবশ্য আরও কর্মক্ষমতা-নিবিড়তর হবে, যাতে একটি start_with?পদ্ধতি সহজভাবে নিশ্চিত করতে পারে যে স্ট্রিংয়ের শুরুটি প্রদত্ত স্ট্রিংয়ের সাথে মেলে — সুতরাং বেশিরভাগ এন অক্ষরে প্রসেসিং যেখানে n প্রদত্ত স্ট্রিংয়ের দৈর্ঘ্য is যেখানে indexঅনুসন্ধান করতে হবে পুরো বেস স্ট্রিং। ব্যর্থতার ক্ষেত্রে, starts_with?একটি অ্যাক্সেস (প্রতি স্ট্রিং) এবং তুলনা করে নেওয়া হবে, যেখানে indexবেস স্ট্রিংয়ের প্রায় পুরো দৈর্ঘ্য চলবে।
ওল্ডপেকুলিয়ার

5

আপনি ব্যবহার করতে পারেন String =~ Regex। এটি স্ট্রিংয়ে পূর্ণ রেগেক্স ম্যাচের অবস্থানে ফিরে আসে।

irb> ("abc" =~ %r"abc") == 0
=> true
irb> ("aabc" =~ %r"abc") == 0
=> false

যখনই সম্ভব //হবে তার পরিবর্তে ব্যবহার করুন %r
সাইয়েস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.