Avatar billede hurra Novice
29. november 2007 - 11:11 Der er 3 kommentarer og
1 løsning

Ruby: default input til metode

Jeg har egentligt to spørgsmål, kan man overloade funktioner i ruby, og kan man lave et default input til en parameter?

Jeg har lavet et lille stykke kode:
class OverloadedTest
    def var
        return @var
    end
    def var=(newvar)
        @var=newvar
    end
    def method(in=@var) # Her er fejlen
        puts "input: #{in}"
    end
end

a = OverloadedTest.new()
a.method(1)
a.var = 2
a.method(3)
a.method

Jeg havde håbet at få følgende udput:
input: 1
input: 3
input: 2
Men det gør jeg ikke, istedet for får jeg en fejl
om.rb:8: syntax error, unexpected kIN, expecting ')'
        def method(in=1)

Hvordan kan jeg gøre det jeg prøver på her?
Avatar billede arne_v Ekspert
30. november 2007 - 02:16 #1
prøv og omdøb in til v !!
Avatar billede arne_v Ekspert
30. november 2007 - 02:16 #2
def method(v=@var)
        puts "input: #{v}"
    end
Avatar billede hurra Novice
03. december 2007 - 11:00 #3
Dohh!!! Men mange tak, det virkede. Kom med et svar.
Avatar billede arne_v Ekspert
03. december 2007 - 15:08 #4
:-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester