Thursday, May 13, 2010

Perbedaan Method nil?, empty?, dan blank?

Method nil?
Method nil? digunakan untuk mengecek apakah suatu objek bernilai nil atau merupakan instance dari NilClass. Contoh penggunaan:
nil.nil? #=> true
false.nil? #=> false
true.nil? #=> false
[].nil? #=> false
"".nil? #=> false
0.nil? #=> false

my_arr = Array.new #=> []
my_arr.nil? #=> false

s = String.new #=> ""
s.nil? #=> false

my_var.nil? #=> NameError: undefined local variable or method `my_var' for main:Object
my_var = nil #=> nil
my_var.nil? #=> true

Method empty?
Method empty? adalah method yang dimiliki hanya oleh objek-objek tertentu sehingga tidak semua objek memiliki method ini. Sebagai contoh, array kosong dan string kosong. Array kosong bukan nil karena merupakan objek atau instance dari kelas Array yang tidak memiliki elemen. Sedangkan string kosong juga bukan nil karena merupakan objek atau instance dari kelas String yang memiliki nol bytes didalamnya. Contoh penggunaan:
nil.empty? #=> NoMethodError: undefined method `empty?' for nil:NilClass
false.empty? #=> NoMethodError: undefined method `empty?' for false:FalseClass
true.empty? #=> NoMethodError: undefined method `empty?' for true:TrueClass
[].empty? #=> true
"".empty? #=> true
0.empty? #=> NoMethodError: undefined method `empty?' for 0:Fixnum

my_arr = Array.new #=> []
my_arr.empty? #=> true

s = String.new #=> ""
s.empty? #=> true

my_var.empty? #=> NameError: undefined local variable or method `my_var' for main:Object
my_var = [] #=> []
my_var.empty? #=> true
Method blank?
Method blank? bukan merupakan method dari Ruby, melainkan method pada framework Ruby on Rails. Sebuah objek dianggap blank jika false, empty atau berisi sebuah karakter spasi. Contoh, "", " ", nil, [], dan {} adalah blank. Salah satu tujuannya adalah menyederhanakan pengecekan apakah suatu objek nil dan empty.
if my_var.nil? && my_var.empty?
menjadi
if my_var.blank?
[via ruby-forum]

No comments:

Post a Comment

© Railsmine