[英]return a nested array from one function, pass as argument to another function
我很生氣,盡量不訴諸使用 $Global 變量來傳遞變量,我在這個論壇中看到了其他看似相同的“主題”,但在細節上我迷路了,或者他們似乎在做一些不同的事情 -或者我只是不明白問題或解決方案。
我從 func1 中的Get-WinEvent
事件對象數組。 我想返回該數組並將其用作另一個 func2 的參數。 情況1
$evtArray = Get-WinEvt -FilterHashtable @{ LogName=Application } #simplified for brevity
return $evtArray #not sure if working or not
return ,$evtArray #not sure if working or not
return @,$evtArray #not sure if working or not
}**```
```**function func2($evtArray) { #doesn't work
function func2( ,$evtArray ) #syntax error
function func2( ,($evtArray)) #syntax error
....further processing of the $evtArray occurs......**```
CASE#2 (may be the same as CASE#1 - not sure)
```**$array += ,(<date-time1>,[int],"string")
$array += ,(<date-time2>,[int],"string")**
....
Then pass $array as argument to a function
**func2($array)**
我在這上面花了幾個小時,看到了十幾個有前途的相同主題......
我建議你不要使用 return。 它結束了當前的 function,一般不需要。 要將 arguments 傳遞給 function,請不要用括號括起來。 arguments 應該用空格分隔,並且最好為參數命名,盡管這不是必需的。
$evtArray = Get-WinEvent -FilterHashtable @{ LogName='Application'; ID = 0}
Function func2($Array){
$array.gettype()
}
func2 $evtArray
正如我之前所說,您不必命名參數,而是使用位置 arguments,但腳本/模塊的最佳實踐是使用全名。
func2 -Array $evtArray
Output 無論哪種方式調用都是
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Object[] System.Array
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.