Differenze tra le versioni di "TypeOf"

Da Gambas-it.org - Wikipedia.
Riga 20: Riga 20:
 
  '''Public''' Sub Main()
 
  '''Public''' Sub Main()
 
   
 
   
   Dim s As String = File.Load(User.Home &/ "gambasdevel/main/share/gb_type_common.h")
+
   Dim s As String = File.Load(User.Home &/ "gambasdevel/main/share/<FONT Color=darkgreen>gb_type_common.h</font>")
 
   Dim c As Short
 
   Dim c As Short
 
    
 
    

Versione delle 07:37, 25 apr 2023

La funzione TypeOf() ritorna un valore intero che rappresenta, conformemente all'enumerazione presente nel file sorgente di Gambas User.Home &/ "main/share/gb_type_common.h", il tipo di dato, al quale appartiene una variabile.

La sua sintassi è:

TypeOf(variabile) As Integer


Specificare il tipo di dato

Dal valore numerico, che rappresenta il tipo di dato, possiamo ottenere la sua specificazione letterale almeno mediante i seguenti due esempi:

Public Sub Main()
 
 Dim tipi As String[] = ["Void", "Boolean", "Byte", "Short", "Integer", "Long", "Single", "Float", "Date", "String",
                         Null, "Pointer", "Variant", "Array o Function", "Class o Structure", "Null", "Object"]
 
 Dim i As Integer
 
 Print "Il tipo di dato è:  "; tipi[TypeOf(i)]
  
End

oppure andando a verificare il tipo di dato direttamente nella seconda enumerazione dei tipi di dati contenuta nel file "gb_type_common.h" dei sorgenti di Gambas:

Public Sub Main()

 Dim s As String = File.Load(User.Home &/ "gambasdevel/main/share/gb_type_common.h")
 Dim c As Short
 
 Dim tipo As Integer   ' Imposta un tipo di dato
 
 c = InStr(s, "VOID") - 1
 
 Do
   Repeat 
     Inc c
   Until s[c, 1] = "="
   If Val(s[c + 2, 2]) == TypeOf(tipo) Then 
     c -= 13
     Print s[c, 8]
     Break 
   Endif
 Loop 
 
End

Si può utilizzare con le opportune modifiche anche la definizione degli identificatori numerici dei tipi di dati (Gambas datatypes identifiers) presente nel file sorgente di Gambas User.Home &/ "gambasdevel/main/share/gambas.h".