本日のお題は「データ型」です。
データ型というのは、文字や正数、真偽値、配列などのことを指します。
例えば「1」を見た時何と言うでしょう。
数字の1と答える人が多数だと思いますが、文字としての「1」もあります。
その場合は漢数字の「一」であれば、漢字の一と答えると思います。
何が言いたいかというとコンピュータでは「1」と書かれただけでは文字なのか数字なのかがわからない時があります。
以下は簡単な例です。
# 数字の1
$num = 1
# 文字の1
$str = "1"
違いがわかりますでしょうか。
そうです「“(ダブルクォーテーション)」で「1」が挟まれてます。
こうすることでコンピュータは変数に入れたものは数字(または文字)だねと理解できます。
どちらも出力は「1」になります。
お次は演算した場合です。
$num = 1
$num + $num
# 出力:2
$str = "1"
$str + $str
# 出力:11
このように文字として代入した「$str」では加算されることなく「1」と「1」で「11」が出力されました。
以下はよく使われるデータ型一覧です。
型名 | 例 | 説明 |
---|---|---|
String | "Hello" | 文字列 |
Int32 | 42 | 整数 |
Boolean | $true , $false | 真偽値 |
Array | @(1,2,3) | 配列 |
Hashtable | @{a=1;b=2} | キーと値のペア |
DateTime | Get-Date | 日付と時刻 |
Object | Get-Process | 複雑な構造を持つオブジェクト |
ちなみに、変数に何のデータ型が入っているか調べたいときは以下のようにします。
# 変数には実際に使用している変数を入れる
$変数.GetType().Name
そして最後に覚えておくと役に立つキャスト(型指定)について、
使い方は簡単!
変数の前に[]とデータ型(int,str,boolなど)を書くことで使えます。
変数にデータを代入するときや代入後でもデータ型を指定することができるのです。
[int]$x = "123" # 文字の"123"となりそうですが、キャストしているので数字として代入
$x = 123
[str]$x # [str]でString型を指定したので $x = "123" と同じものになる
キャストの注意点をお伝えして締めることにします。
メリット | 注意点 |
---|---|
コードの意図が明確になる | 型に合わない値を入れるとエラーに |
自動補完やエディタ支援が強くなる | 暗黙の型変換が起きにくくなる |
バグの予防につながる | 柔軟性が下がる場合もある |
ファイルデータの操作でデータ型をしっかり明確にしておくと予想外のエラーに対応できることが多々あります!ぜひ覚えて業務効率アップしましょう!!
コメント