Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di zeta71
    Registrato dal
    Jan 2009
    Messaggi
    14

    "maneggiare" il nome di una variabile

    Come da oggetto... cosa bisogna mettere al posto dei punti di domanda ???? per ottenere il nome della variabile passata?

    Codice PHP:
    def stampa(nomevalore)
      
    nome = ????
      
    valore nomevalore
      puts 
    "#{nome} = #{valore}"
    end

    lamiavariabile 
    5
    stampa lamiavariabile 
    ...in realtà vorei sapere anche se fosse possibile manipolare anche il nome di un oggetto tipo:

    ilmiooggetto = Oggetto.new
    stampa ilmiooggetto

    facevo alcune considerazioni riguardo al fantomatico nome, in teoria non dovrebbe essere altro che un "riferimento" ad un qualcosa di allocato in qualche parte della memoria. È così? se è così farebbe differenza tra variabile, o oggetto?

    ...come da mio precendete post, mi scuso se la domanda è banle, imprecisa o malposta :berto:

    Andre

  2. #2
    Che è il nome?

    codice:
    def stampa(nomevalore)
      nome = ????
      valore = nomevalore
      puts "#{nome} = #{valore}"
    end
    All'interno di questo metodo il nome non esiste.
    La classe di un oggetto la ottieni con il metodo class.

    codice:
    variable = Object.new
    variable.class # => Object
    variable.class.name # => "Object"

  3. #3
    Utente di HTML.it L'avatar di toraz
    Registrato dal
    Nov 2001
    Messaggi
    263
    Perché cerchi di fare una cosa del genere? :master:

  4. #4
    Utente di HTML.it L'avatar di zeta71
    Registrato dal
    Jan 2009
    Messaggi
    14
    ...accantonando il discorso dell'oggetto, forse così è più chiaro:

    codice:
    def stampa(la_mia_variabile)
      nome_variabile = # qui vorrei capire cosa utilizzare per assegniare a nomevariabile il nome della variabile passata
      puts "#{nome_variabile} = #{la_mia_variabile}" # => la_mia_variabile = 5
    end
    
    la_mia_variabile = 5
    stampa la_mia_variabile
    @ toraz: sono alle prime armi, quindi scrivendo codice preso da vari esempi volevo inserire dei feedback durante l'esecuzione in modo da richiamare semplicemente stampa(pippo) invece di scrivere puts "pippo = #{pippo}".
    Mi rendo conto che sarà anche superfluo ma era tanto per capire...

  5. #5
    Utente di HTML.it L'avatar di toraz
    Registrato dal
    Nov 2001
    Messaggi
    263
    Non si può fare una cosa del genere, all'interno del metodo la variabile che passi come parametro non esiste. Esiste un'altra variabile (che in generale ha un altro nome) che si riferisce allo stesso oggetto.
    Per fare quello che vuoi fare tu o ti spelli le dita e scrivi tutte le volte "puts ecc. ecc." oppure usi ruby-debug, che forse per lo scopo è una soluzione un po' esagerata ma è piuttosto istruttivo.

  6. #6
    Concordo con toraz.

    In alternativa puoi usare il modulo ObjectSpace ma richiede delel conoscenze evolute di Ruby. Secondo me ti complicherebbe solo la vita.
    Ad ogni modo, se decidi di usarlo ecco due riferimenti utili
    http://www.ruby-doc.org/core/classes/ObjectSpace.html
    http://www.ruby-forum.com/topic/138627

  7. #7
    Utente di HTML.it L'avatar di zeta71
    Registrato dal
    Jan 2009
    Messaggi
    14
    ...cedo, mollo l'osso.

    Grazie weppos, grazie toraz... torno a studiare

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.