Perbedaan nil?, empty?, dan blank? di Ruby on Rails

Di dalam bahasa pemrograman Ruby, method nil? dapat diaplikasikan di semua objek dan ia akan mengembalikan nilai true jika objek yang bersangkutan nil. (Remember! In Ruby, everything is an object)

Contoh:

nil.nil?  # nil object returns true

"".nil?  # empty string returns false

[].nil?  # empty array returns false

{}.nil?  # empty hash returns false

Sedangkan method empty? digunakan untuk mengetahui apakah objek yang bersangkutan adalah objek berupa string kosong, array kosong, atau hash kosong. Contoh penggunaannya sebagai berikut:

"".empty?  # empty string returns true

[].empty?  # empty array returns true

{}.empty?  # empty hash returns true

Lalu bagaimana dengan penggunaan method blank? ?

Method blank? adalah method yang disediakan Rails untuk mengetahui apakah suatu objek blank atau present. Blank disini didefinisikan sebagai nil object, empty object, whitespace string (string yang hanya mengandung karakter spasi) dan objek yang bernilai false.

Seringkali kita akan menemui kondisi seperti ini:

hash = { :name => "Arif Qodari", :age => 24 }

hash[:address].empty?

Kita bermaksud untuk melakukan pengecekan apakah elemen address pada objek hash merupakan empty string atau bukan. Namun setelah dijalankan, kode tersebut menghasilkan error NoMethodError: undefined method `empty' for nil:NilClass.

Dari sini lah method blank? diperlukan untuk melakukan pengecekan pada elemen address apakah bernilai nil atau berupa string kosong. Dengan kata lain, method <blank? ekuivalen dengan kode di bawah ini:

if hash[:address].nil? || hash[:address].empty?

dapat disederhanakan menjadi:

if hash[:address].blank?

Berikut beberapa contoh lain penggunaan method blank? :

nil.blank?  # nil object returns true

false.blank?  # false object returns true

[].blank?  # empty array returns true

{}.blank?  # empty hash returns true

"".blank?  # empty string returns true

"  ".blank?  # whitespace string returns true

5.blank?  # fixnum returns false

Rails juga menyediakan method present? sebagai kebalikan dari method blank?.

Sekian dulu tutorial kali ini, semoga bermanfaat. 🙂

Iklan

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s