2006/03/13 7:24 [Ruby] nil または empty か調べる
メソッドが定義されているか調べる の応用。
#!/usr/local/bin/ruby
def nil_or_empty?(var)
if defined?(var.empty?) == 'method'
return var.empty?
else
return var.nil?
end
end
puts nil_or_empty?(nil)
puts nil_or_empty?('')
puts nil_or_empty?('string')
実行結果 :
true true false
2006/03/13 7:10 [Ruby] メソッドが定義されているか調べる
#!/usr/local/bin/ruby
object = Object.new
array = Array.new
puts 'defined?演算子を使う方法'
puts defined?(object.empty?) == 'method'
puts defined?(array.empty?) == 'method'
puts 'Object#methodsを使う方法'
def method_defined?(var, name)
return var.methods.member?(name)
end
puts method_defined?(object, 'empty?')
puts method_defined?(array, 'empty?')
実行結果 :
defined?演算子を使う方法 false true Object#methodsを使う方法 false true