#9 データ型を指定して業務効率アップ

ファイルからint,str,boolが吹き出しの様に飛び出た画像 PowerShell

本日のお題は「データ型」です。
データ型というのは、文字や正数、真偽値、配列などのことを指します。
例えば「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"文字列
Int3242整数
Boolean$true, $false真偽値
Array@(1,2,3)配列
Hashtable@{a=1;b=2}キーと値のペア
DateTimeGet-Date日付と時刻
ObjectGet-Process複雑な構造を持つオブジェクト

ちなみに、変数に何のデータ型が入っているか調べたいときは以下のようにします。

# 変数には実際に使用している変数を入れる
$変数.GetType().Name

そして最後に覚えておくと役に立つキャスト(型指定)について、
使い方は簡単!
変数の前に[]とデータ型(int,str,boolなど)を書くことで使えます。
変数にデータを代入するときや代入後でもデータ型を指定することができるのです。

[int]$x = "123" # 文字の"123"となりそうですが、キャストしているので数字として代入

$x = 123
[str]$x # [str]でString型を指定したので $x = "123" と同じものになる

キャストの注意点をお伝えして締めることにします。

メリット注意点
コードの意図が明確になる型に合わない値を入れるとエラー
自動補完やエディタ支援が強くなる暗黙の型変換が起きにくくなる
バグの予防につながる柔軟性が下がる場合もある

ファイルデータの操作でデータ型をしっかり明確にしておくと予想外のエラーに対応できることが多々あります!ぜひ覚えて業務効率アップしましょう!!

コメント

タイトルとURLをコピーしました