A_N_K Skrevet 20. juli 2005 Del Skrevet 20. juli 2005 Ikke direkte Python-relatert, men slektskapet mellom disse to språkene er såpass nært at jeg regner med å kunne få svar her. I Python er det opplagt hvordan man tilordner funksjons(/metode)objekter, men jeg er jammen ikke sikker på hvordan det gjøres i Ruby. I Ruby kalles jo en funksjon selv uten at man skriver ut parantesene, hvordan får jeg så tilgang til selve funksjonsobjektet? Lenke til kommentar
Frank2004 Skrevet 22. juli 2005 Del Skrevet 22. juli 2005 (endret) For å referere til en metode kan du lage et 'symbol' av navnet ved å sette et kolon foran. Metoder er vel ikke first-class objects i Ruby, men (nesten) alltid bundet til et eller annet objekt; du kan riktignok få tak i metode-objektet vha. method-metoden. Kanskje akkurat dette du var ute etter, men også mulig du heller bør bruke en block/proc? Mulig du får et bedre svar om du forteller oss akkurat hva du prøver å oppnå. Er rimelig fersk på Ruby selv, men sikkert noen andre her som har litt peiling. Endret 22. juli 2005 av Frank2004 Lenke til kommentar
A_N_K Skrevet 22. juli 2005 Forfatter Del Skrevet 22. juli 2005 Det jeg trengte var å referere til en metode avhengig av en betingelse. Dvs. at variabilitet i en "algoritme" ble skjult bak en metode-referanse, tilsvarende det å bruke funksjonspekere i C++ istedenfor switch/case. Jeg løste det ved å opprette en closure vha. "proc". Kjente ikke til det med kolon, skal prøve det straks :_) Savner litt den simplistiske modellen i Python. Ruby har noe av TIMTOWDI (There Is More Than One Way to Do It)-preget fra Perl. Lenke til kommentar
Frank2004 Skrevet 25. juli 2005 Del Skrevet 25. juli 2005 (endret) Det jeg trengte var å referere til en metode avhengig av en betingelse. Dvs. at variabilitet i en "algoritme" ble skjult bak en metode-referanse, tilsvarende det å bruke funksjonspekere i C++ istedenfor switch/case. Hmm.. Dette er vel litt fy i objektorienterte språk? Du bruker heller referanser til et objekt som implementerer metoden det er snakk om. Jeg løste det ved å opprette en closure vha. "proc". Kjente ikke til det med kolon, skal prøve det straks :_) Savner litt den simplistiske modellen i Python. Ruby har noe av TIMTOWDI (There Is More Than One Way to Do It)-preget fra Perl. Måten du løste det på høres ut som 'the ruby way'. Evt. kunne du kanskje brukt en functor-løsning slik jeg nevner over. Om du sender rundt referanser til en metode så må det vel til litt reflection tror jeg, som også skulle være tilgjengelig i python. Men det beste er vel å løse ting uten. Endret 25. juli 2005 av Frank2004 Lenke til kommentar
A_N_K Skrevet 25. juli 2005 Forfatter Del Skrevet 25. juli 2005 Jeg ser ikke noe problem med å refererere til ulike metoder avhengig av hva som skal gjøres, metoden er uansett et objekt i seg selv. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå