w PS zamiast obiektu słownikowego jest hashtable. Po przejrzeniu wielu wygooglanych przykładów oczywiście nie znalazłem odpowiedzi na moje pytania:
- co jeśli wartością ma być zmienna tablicowa?
- jak dostać się do takiej wartości?
- jak zrobić enumerację z możliwością wykonania działań?
odpowiedzi są dość intuicyjne. nie ma problemu, żeby do hashtabla dodać tablicę jako wartość, a następnie robić jakieś operacje. enumeracja jest dokładnie taka sama jak w VBS:
#declaration $hashtable=@{ "aaa"=@(0,0); "bbb"=@(0,0) } #print out single value $hashtable["aaa"][1]++; echo $hashtable["aaa"][1]; #out -> 1 #enum $hashtable #enum with some operation $hashtable["aaa"]=@(5,10) $hashtable["bbb"]=@(3,1) foreach($entry in $hashtable.keys) { echo "$($hashtable[$entry][0]/$hashtable[$entry][1]*100)%"; } # out -> 300% 50%
póki co nie bawiłem się $hashtable.getEnumerator() – być może da się zoptymalizować to trochę.. ale działa wszystko bez problemu niemal tak samo jak VBSowy Dictionary (: listy są w .keys i .values, testy są metodami .containsKey i .containsValue, dodawanie .add, usuwanie .remove – różnice w wykorzystaniu są niewielkie (:
eN.
domel
nExoR