Következő: 15.8.8 MINTÁK ÉS TEVÉKENYSÉGEK
Fel: 15.8.7 VÁLTOZÓK, REKORDOK ÉS
Előző: 15.8.7.4 Tömbök
  Index
A változók és mezők lehetnek (lebegőpontos) számok, sztringek, vagy mindkettő.
A változó értékének kezelése a környezetétől függ. Ha numerikus kifejezésben
szerepel, számként lesz kezelve, ha sztringként használják, akkor sztringként.
Ha kényszeríteni szeretnénk, hogy egy változó számként legyen kezelve, adjunk
hozzá 0-t; ha azt akarjuk, hogy sztringként, konkatenáljuk az üres sztringgel.
Ha egy sztringet számmá kell konvertálni, a konverzió az atof (3) függvénnyel
valósul meg. Egy szám sztringgé konvertálódik, ha a CONVFMT értékét, mint az
sprintf (3) függvényformázó sztringjét használjuk, argumentumként pedig a
változó számértékét adjuk meg. Azonban, jóllehet az awk-ban minden szám
lebegőpontos, az egész értékek mindig integer-szerűen konvertálódnak. Így
CONVFMT = ,,%2.2f''
a=12
b=a,,''
a b változó sztringértéke ,,12'' és nem ,,12.00''.
A gawk a következőképpen hajtja végre az összehasonlítást: ha két változó
numerikus, numerikusan hasonlít össze. Ha az egyik érték numerikus és a másik
sztringérték, amely ,,numerikus sztring'', akkor az összehasonlítás szintén
numerikusan történik. Egyébként a numerikus érték sztringgé konvertálódik és
sztring-összehasonlítás hajtódik végre. Két sztring, természetesen sztringként
hasonlítódik össze. A POSIX szabvány szerint, akkor is numerikus
összehasonlítást kell végezni, ha két sztring numerikus sztring. Azonban ez
teljesen helytelen, és a gawk nem ezt teszi. Fontos, hogy a sztring
konstansok, úgy mint az ,,57'', nem numerikus sztringek; ezek sztring
konstansok. A ,,numerikus sztring'' fogalom csak a mezőkre, a getline
bemenetre, a FILENAME-re, az ARGV elemekre, az ENVIRON elemekre és a split()
függvénnyel létrehozott tömb numerikus sztring elemeire vonatkozik. Az
alapgondolat az, hogy a numerikus alakú felhasználói bemenetet, és csak a
felhasználói bemenetet szabad így kezelni. Az inicializálatlan változók
numerikus érteke 0, sztringértékük ,,'' (null-, vagy üres sztring).
Következő: 15.8.8 MINTÁK ÉS TEVÉKENYSÉGEK
Fel: 15.8.7 VÁLTOZÓK, REKORDOK ÉS
Előző: 15.8.7.4 Tömbök
  Index
1999-09-17