ruby on rails - tutorial - রুলে রুবিতে নীল ভি। খালি ভ। ফাঁকা একটি সংক্ষিপ্ত ব্যাখ্যা




ruby stone (10)

অন্য সবাই পার্থক্য কি ভাল ব্যাখ্যা করেছে।

আমি রুবি অন obj.blank? যোগ করতে চাই, obj.blank? ব্যবহার করা ভাল obj.blank? অথবা obj.present? পরিবর্তে obj.nil? অথবা obj.empty?

obj.blank? সমস্ত ধরনের nil , '' , [] , {} , পরিচালনা করে এবং মানগুলি উপলব্ধ না হলে true ফেরত দেয় এবং কোনও বস্তুর মানগুলি উপলব্ধ থাকলে false ফেরত দেয়।

আমি নিজেকে বারবার পার্থক্য একটি স্পষ্ট সংজ্ঞা খুঁজছেন nil? , blank? , এবং empty? Rails উপর রুবি মধ্যে। আমি এখানে এসেছি সবচেয়ে নিকটতম

  • blank? বস্তু মিথ্যা, খালি, বা একটি হোয়াইটস্পেস স্ট্রিং হয়। উদাহরণস্বরূপ, "" , " " , nil , [] , এবং {} খালি।

  • nil? বস্তু NilClass দৃষ্টান্ত।

  • empty? বস্তু ক্লাস-নির্দিষ্ট, এবং সংজ্ঞা ক্লাস থেকে ক্লাসের মধ্যে পরিবর্তিত হয়। যদি কোন অক্ষর না থাকে তবে একটি স্ট্রিং খালি থাকে এবং এতে কোনো আইটেম থাকে না থাকলে একটি অ্যারের খালি থাকে।

কিছু অনুপস্থিত আছে, বা একটি কঠিন তুলনা করা যেতে পারে যে?


আমি সব ক্ষেত্রে এই দরকারী টেবিল তৈরি:

blank? , present? Rails দ্বারা উপলব্ধ করা হয়।


একটি বুলিয়ান মান নিল কিনা যদি মূল্যায়নের চেষ্টা করার সময় একটি বিশেষ কেস হয়:

false.present? == false
false.blank? == true
false.nil? == false

এই ক্ষেত্রে সুপারিশ ব্যবহার করা .nil?


দ্রুত টিপ !obj.blank? == obj.present? !obj.blank? == obj.present?

কিছু এক্সপ্রেশন মধ্যে চোখ সহজ / সহজ হতে পারে


রেল 4

@ কোরবান-ব্রুকের 'অ্যারে গোটাচা ' এর বিকল্পঃ ফাঁকা? একটি অ্যারে শুধুমাত্র খালি মান ঝুলিতে কিনা এবং খালি হিসাবে গণ্য করা যাবে কিনা তা পরীক্ষা করার জন্য? সত্য:

[ nil, '' ].all? &:blank? == true

একজনও করতে পারে:

[nil, '', "", " ",'  '].reject(&:blank?).blank? == true

শুধু একটি সম্পর্কে একটু নোট any? সুপারিশ: তিনি ঠিক যে এটি সাধারণত সমান !empty? । যাইহোক, any? শুধু হোয়াইটস্পেস (আলা " " ) একটি স্ট্রিং true ফিরে আসবে।

এবং অবশ্যই, উপরে 1.9 মন্তব্য দেখুন।


  • সবকিছু কি nil? blank?
  • empty? সবকিছু কি empty? blank?
  • কিছুই empty? nil?
  • কিছুই না nil? empty?

tl; dr - শুধুমাত্র blank? ব্যবহার blank? এবং present? যদি না আপনি "" এবং " " মধ্যে পার্থক্য করতে চান


.nil? কোন বস্তু ব্যবহার করা যেতে পারে এবং বস্তু নিল হয় যদি সত্য।

.empty? স্ট্রিং, অ্যারে এবং হ্যাশে ব্যবহার করা যেতে পারে এবং সত্য ফেরত যদি:

  • স্ট্রিং দৈর্ঘ্য == 0
  • অ্যারের দৈর্ঘ্য == 0
  • হ্যাশ দৈর্ঘ্য == 0

চলমান .empty? নীল কিছু যে একটি NoMethodError নিক্ষেপ করা হবে।

যে যেখানে। .blank? আসে। এটি Rails দ্বারা প্রয়োগ করা হয় এবং কোন বস্তুর পাশাপাশি .empty? কাজ .empty? স্ট্রিং, অ্যারে এবং হ্যাশে।

nil.blank? == true
false.blank? == true
[].blank? == true
{}.blank? == true
"".blank? == true
5.blank? == false
0.blank? == false

.blank? এছাড়াও অ-খালি যা স্ট্রিং উপর সত্য মূল্যায়ন কিন্তু শুধুমাত্র হোয়াইটস্পেস রয়েছে:

"  ".blank? == true
"  ".empty? == false

রেল এছাড়াও উপলব্ধ করা .present? , যা .blank? নেতিবাচক ফেরত দেয় .blank?

অ্যারে গোটচাঃ blank? একটি অ্যারের সব উপাদান খালি থাকলে এমনকি false ফিরে আসবে। এই ক্ষেত্রে খালিতা নির্ধারণ, all? ব্যবহার all? blank? সঙ্গে blank? , উদাহরণ স্বরূপ:

[ nil, '' ].blank? == false
[ nil, '' ].all? &:blank? == true 

nil? একটি আদর্শ রুবি পদ্ধতি যা সমস্ত বস্তুতে বলা যেতে পারে এবং বস্তু nil হলে true ফেরত দেওয়া হয়:

b = nil
b.nil? # => true

empty? স্ট্রিং, অ্যারে এবং হ্যাশেসের মতো কিছু বস্তুগুলিতে বলা যেতে পারে এমন একটি রুবি পদ্ধতি এবং এই বস্তুতে কোনও উপাদান থাকে না যদি true :

a = []
a.empty? # => true

b = ["2","4"]
b.empty? # => false

empty? nil বস্তু বলা যাবে না।

blank? একটি রেল পদ্ধতি যা nil বস্তুর পাশাপাশি খালি বস্তুগুলিতে বলা যেতে পারে।


nil? কোনো বস্তুর উপর ব্যবহার করা যেতে পারে। এটি 'ফাঁকা' মান সহ বস্তুর কোনো মান আছে কিনা তা নির্ধারণ করে।

উদাহরণ স্বরূপ:

example = nil
example.nil?  # true

"".nil?  # false

মূলত nil? বস্তু প্রকৃতপক্ষে 'nil' সমান হলেই সত্যই ফিরে আসবে।

empty? শুধুমাত্র একটি সংগ্রহ বলে মনে করা হয় যে বস্তু বলা হয়। এতে স্ট্রিংগুলি (অক্ষরের একটি সংগ্রহ), হ্যাশেস (কী / মান জোড়াগুলির একটি সংগ্রহ) এবং অ্যারে (ইচ্ছাকৃত বস্তুর একটি সংগ্রহ) অন্তর্ভুক্ত রয়েছে। empty? সত্য ফেরত সংগ্রহ কোন আইটেম নেই।

উদাহরণ স্বরূপ:

"".empty? # true
"hi".empty?   # false
{}.empty?  # true
{"" => ""}.empty?   # false
[].empty?   # true
[nil].empty?  # false

nil.empty?  # NoMethodError: undefined method `empty?' for nil:NilClass

যে empty? লক্ষ্য empty? নিল অবজেক্টগুলিতে বলা যাবে না কারণ নিল অবজেক্টস একটি সংগ্রহ নয় এবং এটি একটি ব্যতিক্রম বাড়াবে।

এছাড়াও একটি সংগ্রহের আইটেমগুলি খালি থাকলেও লক্ষ্য করুন, এটি একটি খালি খালি নয়।

blank? মূলত nil? একটি সংমিশ্রণ হয় nil? এবং empty? সংগ্রহগুলি যেগুলি আপনি অনুমান করছেন তা পরীক্ষা করার জন্য এটি কার্যকর, কিন্তু এটি নিল।





ruby