반응형
PowerShell이 빈 배열을 배열로 반환하지 않음
이것이 효과가 있다는 것을 고려할 때:
$ar = @()
$ar -is [Array]
True
왜 안 되는 거지?
function test {
$arr = @()
return $arr
}
$ar = test
$ar -is [Array]
False
즉, 테스트 기능에서 빈 배열이 반환되지 않는 이유는 무엇입니까?
PowerShell이 단순히 인수만 반환하는 것이 아니라 캡처되지 않은 모든 스트림 출력을 반환하기 때문에 기능이 작동하지 않습니다.return
진술.빈 배열이 다음으로 분할됩니다.$null
그 과정에서그러나 배열 구성 연산자()를 추가하여 반환 시 배열을 보존할 수 있습니다.,
):
function test {
$arr = @()
return ,$arr
}
write-output $arr
파이크는 그냥 쓰는 것과 같습니다.$arr
그래서 기능은 여전히 되돌아옵니다.$null
.
그렇지만 write-output
선택권이 있습니다.-NoEnumerate
즉, 비어 있는 배열은 열거되지 않으며, 비어 있기 때문에 무시됩니다.결과는 빈 배열입니다.
인정하건대 위의 대답은 ...보다 훨씬 짧습니다.
function test {
$arr = @()
write-output $arr -NoEnumerate
}
(test) -is [array] ## $True
"prepend '," 솔루션에서 명심해야 할 또 다른 사항은 나중에 데이터를 직렬화하려는 경우 몇 가지 문제가 발생한다는 것입니다.무엇을,
어떤 변수를 추가하든 배열로 묶는 것이 실제로 수행되는 것으로 보입니다.$null
된다[]
,"test"
된다["test"]
하지만...["foo","bar"]
된다[["foo","bar"]]
연쇄 살인의 관점에서 보면 분명히 문제가 되는 겁니다
언급URL : https://stackoverflow.com/questions/18476634/powershell-doesnt-return-an-empty-array-as-an-array
반응형
'programing' 카테고리의 다른 글
포크를 호출할 때 스레드가 복사됩니까? (0) | 2023.08.04 |
---|---|
문자열에서 영숫자가 아닌 모든 문자 바꾸기 (0) | 2023.07.30 |
MongoDB에서 이 스키마를 어떻게 구현해야 합니까? (0) | 2023.07.30 |
속성 x가 없는 요소와 일치하는 css 선택기 (0) | 2023.07.30 |
C# 대소문자를 구분하지 않는 동등 연산자가 있습니까? (0) | 2023.07.30 |