Hi,
Thanks for your reply.
I found a sample at http://www.angelfire.com/tx4/cus/shapes/r.html
I did the same with my class and now it is working
###
setGeneric("setName<-",
function(this, value)
standardGeneric("setName<-")
)
setReplaceMethod("setName", "Partri",
function(this, value)
{
this@name <- value
this
}
)
##
I have other doubts:
a) The usual representation of a method calling in other languages (I mean,
Java, Delphi) is:
obj.method(<parameters>)
So, I believed that in R it was the same thing. Thats it, to call the method
setName of my instance "x" I could write:
x.setName("blablabla")
The right way really is?
method(instance) <- parameters
Thats it:
setName(x) <- "blablabla" ?
It sounds strange to me. Maybe because I used with other languages, but it
doen´t seem legible to me this sintaxe.
b) I realised I have to use the name "value" as the parameter name,
what else it won´t work. Is that corret?
c) and in the case I have two or more parameters. How should I do?
I typed ?setReplaceMethod in RGui how you suggested, but it doesn´t bring any
information about this instruction.
Thanks again and sorry for my english mistakes.
Gilvan Justino
Uwe Ligges <ligges@statistik.uni-dortmund.de> wrote:
Gilvan Justino wrote:> Hi,
>
> I started creating a small class but I'm courious about how it is
working.
>
> To create a instance of my class "Partri" I write this at Rgui:
> x <- new("Partri", name="Gilvan")
>
> and to change the slot "name" of this instance, I write:
> setName(x, newname="Justino")
>
> It is not working, because when I type "x" at Rgui, it shows the
initial value, which was "Gilvan". What I am doing wrong?
>
> I'll appreciate any king of help!
> Gilvan
>
>
> # Classe para representar um parâmetro
> setClass("Partri",
> # parâmetros
> representation( name="character"),
> # seção de inicialização
> prototype( name="undefined name" )
> )
>
> setGeneric("setName",
> function(object, newname,...)
> standardGeneric("setName"))
> setMethod("setName",
> signature(object="Partri",newname="character"),
> function(object, newname)
> {
> object@name = newname
You set the "name" in the environment of the method, but you don't
assign it to the environment that you seem to expect erroneously. To see
that it works, simply insert
print(object@name)
Instead, you want to write some non-standard replacement function. See
?setReplaceMethod and friends (you might want to take a look into the
green book as well).
Uwe Ligges
> }
> )
>
>
> ---------------------------------
>
> ora!
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help@stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide!
http://www.R-project.org/posting-guide.html
__________________________________________________
[[alternative HTML version deleted]]