End of Life Ruby 3.1 has reached end of life and gets no more fixes. Switch to Ruby 4.0 →
instance method
Object#instance_variable_defined?
obj.instance_variable_defined?(symbol) → true or false
obj.instance_variable_defined?(string) → true or false
object.c
View on GitHub ↗
static VALUE
rb_obj_ivar_defined(VALUE obj, VALUE iv)
{
ID id = id_for_var(obj, iv, instance);
if (!id) {
return Qfalse;
}
return rb_ivar_defined(obj, id);
}
Returns true if the given instance variable is defined in obj. String arguments are converted to symbols.
Example
class Fred def initialize(p1, p2) @a, @b = p1, p2 end end fred = Fred.new('cat', 99) fred.instance_variable_defined?(:@a) #=> true fred.instance_variable_defined?("@b") #=> true fred.instance_variable_defined?("@c") #=> false
See also
#instance_of?
#instance_variable_get
#inspect
#instance_variables
also in
4.1 · 4.0 · 3.4 · 3.3 · 3.2 · 3.0