Hello
How to pass reference to a class in Ruby?
For example:-
def func(x)
x = x+1
end
a = 5
func(a)
puts a
Regards
Tridib
Hello
How to pass reference to a class in Ruby?
For example:-
def func(x)
x = x+1
end
a = 5
func(a)
puts a
Regards
Tridib
Classes are just constants.
def lol_factory(klass)
klass.new
end
my_string = lol_factory(String)
On Tue, Jan 17, 2012 at 1:36 PM, Tridib B.
[email protected]wrote:
a = 5
Hi, it’s not clear how this code example has anything to do with a
reference to a class (I assume you mean class as in Array, String,
Object,
etc).
Anyway, classes are objects like anything else, they are accessed by
looking up the constants, but the constants are just references like
variables are, so you can do:
def instantiate(klass)
klass.new
end
instantiate String # => “”
instantiate Array # => []
instantiate Hash # => {}
In this case, we name the variable “klass” because “class” is a keyword.
On 01/17/2012 01:36 PM, Tridib B. wrote:
a = 5
func(a)
puts a
Instances of classes such as Fixnum, from your example, are immutable.
Your func method actually causes a new Fixnum instance to be created
whose value is 1 greater than the Fixnum instance passed in.
If you want to make a mutable number-like object that would work in your
example code, you’ll need to create your own wrapper object that
implements all the necessary methods of the number object you wish to
emulate. Take a look at the delegate library from the Ruby standard
library for something that might help you quickly whip up such a
wrapper.
-Jeremy
On Tue, Jan 17, 2012 at 8:36 PM, Tridib B.
[email protected] wrote:
puts a
What problem are you trying to solve?
Cheers
robert
hi Tridib,
if i’m not mistaken you could just do something like this:
class Fixnum
def add_one
self + 1
end
end
p 5.add_one
=> 6
…is that what you were looking for?
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.
Sponsor our Newsletter | Privacy Policy | Terms of Service | Remote Ruby Jobs