Típusvizsgálat, típuskonverzió (-is, -isnot, -as)

Az 1.3.13 Típuskonverzió fejezetben variáltam a típusokkal. Ebbe a témakörbe tartozik a típusok vizsgálata is. Ha nem lekérni akarjuk egy objektum típusát, hanem rákérdezni, hogy valami valamilyen típusú-e, akkor az –is  operátort lehet használni, ha pont arra vagyunk kíváncsiak, hogy egy változó nem valamilyen-e, akkor az ‑isnot  operátor használható:

[52] PS I:\>"szöveg" -is [string]

True

[53] PS I:\>"szöveg" -is [object]

True

[54] PS I:\>"szöveg" -is [array]

False

[55] PS I:\>1 -is [double]

False

[56] PS I:\>1.1 -is [double]

True

[57] PS I:\>1.1 -is [float]

False

[58] PS I:\>$true -is [int]

False

[59] PS I:\>$true -is [bool]

True

[60] PS I:\> (get-date) -isnot [int]

True

Minden „dolog” a PowerShellben objektum, így akár a szöveg, vagy a szám is, de akár a típusjelölő is objektum:

[64] PS I:\>[string] -is [object]

True

És egy majdnem örök igazság (kivéve az $a=$null esetet):

[70] PS I:\>$a -is $a.GetType()

True

A már korábban látott típuskonverziós szintaxis mellett használhatunk direkt típuskonvertáló operátort is, ami az ‑as:

[73] PS I:\>"01234" -as [int]

1234

[74] PS I:\>1.1234 -as [int]

1

[76] PS I:\>1.1234 -as [double]

1,1234

[77] PS I:\>112345678 -as [float]

1,123457E+08

[78] PS I:\>112345678 -as [double]

112345678

[79] PS I:\>"szöveg" -as [int]

[80] PS I:\>

A [79]-es sornál látszik, hogy mi a különbség a korábbi típuskonverziós szintaxis és az –as operátor használata között: ez utóbbinál, ha nem tudja végrehajtani a műveletet, akkor nem ad hibajelzést, hanem $null értéket ad vissza.



Word To HTML Converter