powershellの変数アクセスについてのメモ 定義されている構造とは違う構造でアクセスした場合、読み取りはできるけど、書き込みは有効にならない感じがすることのメモ 要素3つの配列、その要素に要素3つのハッシュがあるものを定義する。 > $person=@(@{id=1;name="Taro";height=175},@{id=2;name="Jaro";height=173},@{id=1;name="Saburo";height=176}) > $person[0] Name Value ---- ----- name Taro id 1 height 175 > $person[0].GetType() IsPublic IsSerial Name BaseType -------- -------- ---- -------- True True Hashtable System.Object > $person[0].name Taro > $person[0].name.GetType() IsPublic IsSerial Name BaseType -------- -------- ---- -------- True True String System.Object 構造通りのアクセスについては予想通り。 配列を無視して1つのハッシュっぽく読み取りアクセスしてみると、 > $person.name Taro Jaro Saburo > $person.name.GetType() IsPublic IsSerial Name BaseType -------- -------- ---- -------- True True Object[] System.Array > $person.name[1] Jaro > $person.name[1].GetType() IsPublic IsSerial Name BaseType -------- -------- ---- -------- True True String System.Object 配列を単体のようにアクセスすると、その結果が配列として返却される。 便利な気がするが、(適当に作っても動いてしまって、あとでメンテが辛そうといった)危なっかしい気もする。 次は書き込み。 まずは、構造通りのアクセスで変更してみると、 > $person[0].height 175 > $person[0].height=180 > $person[0].height 180 予想通り変更された。 配列を無視して1つのハッシュっぽく書き込みアクセスしてみると、 > $person.height[0] 180 > $person.height[0]=175 > $person.height[0] 180 エラーは発生せず値は書き換わらない。 > $person Name Value ---- ----- name Taro id 1 height 180 name Jaro id 2 height 173 name Saburo id 1 height 176 一旦180に書き換えた後に入力した175の値はどこに行っちゃったんだろう。
2025年3月20日木曜日
Powershellの配列アクセス
2025年3月19日水曜日
インタフェース2025年2月号追実行断念。
私にはハードルが高すぎた。 MIKE環境の作成には、・・・を展開します。とあるが、どこからnormal_mike_xxx.tar.gzをダウンロードすればよいかわからない。 第3部4章では、リスト1から14まで参照しているがそのリストがどこにあるかわからない。などなど。 関わっていても時間が溶けるだけで身になることはなさそうなので諦めよう。
登録:
投稿 (Atom)