මම නැවත නැවතත් වෙනස්කම් පිළිබඳ පැහැදිලි නිර්වචනයක් සොයමින් සොයා nil?
, blank?
සහ empty?
රේල් පීලි මත රූබි දී. මෙන්න මම ආපු සමීපතමයා:
blank?
වස්තූන් ව්යාජ, හිස් හෝ සුදු පැහැති නූලකි. උදාහරණයක් ලෙස,""
," "
,nil
,[]
, හා{}
හිස් වේ.nil?
වස්තූන් නිල් ක්ලාස් හි උදාහරණ වේ.empty?
වස්තූන් පන්ති විශේෂිත වන අතර අර්ථ දැක්වීම පන්තියෙන් පන්තියට වෙනස් වේ. අක්ෂර නොමැති නම් නූලක් හිස් වන අතර එහි කිසිදු අයිතමයක් නොමැති නම් අරාව හිස් වේ.
කිසිවක් නැතිවී තිබේද, නැතහොත් කළ හැකි දැඩි සංසන්දනයක් තිබේද?
:nil?
මත අර්ථ ::Kernel
හා ඉක්මවනු ::NilClass
ඇති අතර :empty?
බොහෝ පන්ති (natively මත, ෙවන් ෙවන් වශෙයන් ක්රියාත්මක ::String
, ::Array
, ::Hash
, සහ-natively නොවන වැනි අනෙකුත් පන්ති මත ::Set
stdlib හා ::ActiveRecord::Relation
රේල් පීලි සිට). එබැවින් :nil?
සියලුම පන්තිවල සහ තනිවම ::Object
ඇතුළත් වන සෑම පන්තියකම ලබා ගත හැකිය ::Kernel
, එහිදී :empty?
ඔබේ පන්තිවල ක්රියාත්මක කළ යුතු හෝ විශේෂයෙන් ඇතුළත් කළ යුතුය.
nil
සංකල්පය තේරුම් ගැනීමට උත්සාහ කරන්නේ නම් මෙහි ආරම්භ කරන්න .
[1] pry(main)> [].blank? => true
present?
. එයට හේතුවblank?
හිස් අරාවක් සඳහා නැවත පැමිණීම සත්ය වේ.