Differenze tra le versioni di "Conoscere in runtime il numero identificatore di un tipo di dato di una variabile presente nel codice"
Riga 1: | Riga 1: | ||
− | ===Usando la funzione nativa di Gambas "TypeOf()=== | + | ===Usando la funzione nativa di Gambas "TypeOf()"=== |
Per conoscere il tipo di dato, al quale appartiene una variabile dichiarata nel codice, è sufficiente utilizzare la funzione nativa di Gambas: "[https://gambaswiki.org/wiki/lang/typeof?l=it TypeOf()]". | Per conoscere il tipo di dato, al quale appartiene una variabile dichiarata nel codice, è sufficiente utilizzare la funzione nativa di Gambas: "[https://gambaswiki.org/wiki/lang/typeof?l=it TypeOf()]". | ||
<BR>In particolare questa funzione restituisce il numero identificativo del tipo di dati individuato all'interno dell'elenco presente nel file sorgente di Gambas "''/home/[USER]/gambasdevel/main/share/gambas.h'' " e riscontrabile nelle Costanti di ritorno che rappresentano i tipi di dati. | <BR>In particolare questa funzione restituisce il numero identificativo del tipo di dati individuato all'interno dell'elenco presente nel file sorgente di Gambas "''/home/[USER]/gambasdevel/main/share/gambas.h'' " e riscontrabile nelle Costanti di ritorno che rappresentano i tipi di dati. |
Versione delle 16:24, 5 apr 2023
Usando la funzione nativa di Gambas "TypeOf()"
Per conoscere il tipo di dato, al quale appartiene una variabile dichiarata nel codice, è sufficiente utilizzare la funzione nativa di Gambas: "TypeOf()".
In particolare questa funzione restituisce il numero identificativo del tipo di dati individuato all'interno dell'elenco presente nel file sorgente di Gambas "/home/[USER]/gambasdevel/main/share/gambas.h " e riscontrabile nelle Costanti di ritorno che rappresentano i tipi di dati.
I tipi di dati non nativi di Gambas, come la Struttura viene identificata semplicemente con il numero "16", che identifica il tipo "Object" (gb.Object ).
Usando l'indirizzo di memoria della variabile
Come già detto nel paragrafo precedente, nel file sorgente di Gambas "/home/[USER]/gambasdevel/main/share/gambas.h " è presente - quasi all'inizio - l'elenco dei numeri identificatore dei tipi di dati (Gambas datatypes identifiers ), previsti da Gambas.
Per conoscere a quale numero identificatore di tipo di dato appartiene una variabile dichiarata nel codice, si dovrà ottenere l'indirizzo di memoria di tale variabile e sottrarre a questo 8 unità come segue:
Public Sub Main() Dim p As Pointer Dim id As Short ' Pone un variabile di tipo "Short" da verificare: p = VarPtr(id) ' Trova il numero identificatore del tipo di dato della variabile: Print "Gambas datatype identifier: "; Byte@(p - 8) End
Se la variabile, di cui trovare il numero identificatore del tipo di dato, è una Struttura, allora avremo:
Public Struct Struttura b As Byte c As Short End Struct Private id As Struct Struttura ' Ovviamente si può usare anche la parola-chiave "New" Public Sub Main() Dim p As Pointer p = VarPtr(id) Print "Gambas datatype identifier: "; Byte@(p - 8) End