2016-02-20 183 views
-2

我想創建一個哈希表,其中鍵將字符串和值將是整數。我嘗試這樣做:PowerShell哈希映射類型

[email protected]{} 
$map.add("first",1) 
$map.add("sec",r) 

我已創建了一個功能,將接受字符串和整數

function fun([string]$name,[int]$val) 
{ 
.............. 
} 

,我試圖調用這樣的功能:

$map.keys | % { fun -name $_ -value $map.Item($_)} 

請給我建議,我怎樣才能調用這個函數?

+2

你有什麼問題?你有任何錯誤信息?你的代碼看起來對我有效,除非你聲明函數'f',但調用'fun',並聲明參數'$ val',但使用'-value'。 – PetSerAl

+0

yes「無法將System.objects []類型的System.objects []值轉換爲輸入System.int32」 – Pbox

+2

您能否提供演示錯誤的完整代碼示例? – PetSerAl

回答

2
  1. 「秒」有一個不帶引號的r,這是加時,甚至如果它被引用作爲一個字符串它會失敗fun,因爲它不是一個int將失敗表達式的值。
  2. 您的函數聲明參數$val,但在調用它時使用-value,這將使輸出返回0,其中$value被使用,而不是來自散列表的值。

固定樣本:

[email protected]{} 
$map.add("first",1) 
$map.add("sec",2) 

function fun([string]$name,[int]$val) 
{ 
    "$name is $val" 
} 

$map.keys | % { fun -name $_ -val $map.Item($_)} 
sec is 2 
first is 1