tuple_type
— Zurückgeben des Typs eines Tupels.
tuple_type
gibt den Typ eines Eingabetupels T
zurück. Der Typ wird als Ganzzahl im Ausgabeparameter Type
zurückgegeben. In HDevelop stehen entsprechend definierte Konstanten zur
Verfügung:
H_TYPE_INT (1).
H_TYPE_REAL (2).
H_TYPE_STRING (4).
H_TYPE_MIXED (8).
H_TYPE_HANDLE (16).
H_TYPE_ANY (31).
H_TYPE_MIXED wird in folgenden zwei Fällen zurückgegeben:
Elemente des Tupels haben verschiedene Datentypen, z.B.
real
und integer
.
Mit dem Tupel T
wurden Operationen durchgeführt, die den
Datentyp einzelner Elemente geändert haben. Solche Tupel werden
im Allgemeinen (aufgrund von Laufzeitgründen) nicht automatisch
optimiert, selbst wenn die Datentypen aller Elemente in nachfolgenden
Operationen wieder gleich werden. Siehe Operator
tuple_is_mixed
und das nachfolgende Beispiel für
Informationen darüber wie solche Tupel optimiert werden können.
Falls das Eingabetupel leer ist, gibt der Operator 31 (H_TYPE_ANY) zurück.
HDevelop unterstützt eine Inline-Operation für tuple_type
,
die innerhalb eines Ausdrucks in der folgenden Syntax verwendet werden
kann:
tuple_type
gibt den internen Datentyp des Tupels zurück. Im
Gegensatz zu tuple_is_number
wird nicht zurückgegeben, ob ein Tupel
als ein bestimmter Datentyp dargestellt werden könnte.
T
(input_control) tuple(-array) →
(real / integer / string / handle)
Eingabetupel.
Type
(output_control) number →
(integer)
Typ des Eingabetupels als Ganzzahl.
tuple_type ([3.1416,'pi',3], TypeA) * TypeA = H_TYPE_MIXED tuple_type (['a','b','111'], TypeB) * TypeB = H_TYPE_STRING tuple_type ([], TypeC) * TypeC = H_TYPE_ANY tuple_type (HNULL, TypeD) * TypeD = H_TYPE_HANDLE TupleInt := [1,2,3,4] TupleReal := [42.0] TupleConcat := [TupleInt, TupleReal] tuple_type (TupleConcat, TypeConcat) * TypeConcat = H_TYPE_MIXED * Now set 42.0 to 42 TupleConcat[4] := 42 tuple_type (TupleConcat, TypeConcat2) * TypeConcat2 = H_TYPE_MIXED * TupleConcat now consists of integers only, but the * internal representation hasn't been updated. Optimize * it by converting the tuple explicitly to an integer * tuple. tuple_int (TupleConcat, TupleConcatInt) tuple_type (TupleConcatInt, TypeConcatInt) * TypeConcatInt = H_TYPE_INT
Sind die Parameterwerte korrekt, dann liefert tuple_type
den Wert 2 (H_MSG_TRUE).
tuple_is_int
,
tuple_is_number
,
tuple_is_real
,
tuple_is_string
,
tuple_sem_type
Foundation