Ruby interpreted variables is_a? -
i looking check variabe type based on value held in variable struggling it. i'm new ruby can tell me how have value of variable interpreted in expression? current code looks like:-
if variable.is_a?("#{variable_type}") puts variable end
where variable
contain , variable_type
contains type of variable string or fixnum. code gives me typeerror: class or module required.
thoughts?
your code sends string object #is_a?
method , #is_a
method expects class.
for example, string
vs. "string"
:
variable = "hello!" variable_type = string "#{variable_type}" # => "string" # code: if variable.is_a?("#{variable_type}") puts variable end
#is_a?
expects actual class (string, fixnum, etc') - can see in the documentation #is_a?
.
you can adjust code in 2 ways:
pass class, without string.
convert string class using
module.const_get
.
here example:
variable = "hello!" variable_type = string "#{variable_type}" # => "string" # passing actual class: if variable.is_a?(variable_type) puts variable end # or, # converting string type: if variable.is_a?( module.const_get( variable_type.to_s ) ) puts variable end
Comments
Post a Comment