Saya menemukan diri saya berulang kali mencari definisi yang jelas tentang perbedaan nil?, blank?dan empty?di Ruby on Rails. Inilah yang paling dekat dengan saya:
blank?objek adalah string palsu, kosong, atau spasi. Sebagai contoh,""," ",nil,[], dan{}kosong.nil?objek adalah instance dari NilClass.empty?objek adalah kelas-spesifik, dan definisi bervariasi dari kelas ke kelas. String kosong jika tidak memiliki karakter, dan array kosong jika tidak mengandung item.
Apakah ada yang hilang, atau perbandingan yang lebih ketat yang bisa dibuat?
:nil?didefinisikan pada ::Kerneldan diganti pada ::NilClass, sementara :empty?diimplementasikan secara terpisah di banyak kelas (native pada ::String, ::Array, ::Hash, dan non-native di kelas-kelas lain seperti ::Setdari stdlib dan ::ActiveRecord::Relationdari rel). Jadi :nil?tersedia di semua subclass ::Objectdan juga di setiap kelas yang termasuk ::Kerneldengan sendirinya, di mana :empty?harus diterapkan atau dimasukkan secara khusus di kelas Anda.
nilkonsep, mulailah dari sini .
[1] pry(main)> [].blank? => true



present?. Yang karenablank?mengembalikan true untuk array kosong.