다음 코드에서 F와 G의 반환 값에 차이가있는 이유는 무엇입니까? 함수가 빈 콜렉션의 어떤 종류를 반환하는 경우괄호 사용/사용 안 함 결과 반환
Function F {
Return (New-Object Collections.Generic.LinkedList[Object])
}
Function G {
Return New-Object Collections.Generic.LinkedList[Object]
}
Function Write-Type($x) {
If($null -eq $x) {
Write-Host "null"
} Else {
Write-Host $x.GetType()
}
}
Write-Type (F) # -> null
Write-Type (G) # -> System.Collections.Generic.LinkedList`1[System.Object]
는 지금까지 내가 이해, PowerShell은 널 (null)로 "를 풀다"할 것이다, 그래서 F 내가 기대한다. 하지만 G는 어떻게됩니까?
편집 : JPBlanc에서 지적했듯이 PowerShell 3.0만이이 차이점을 나타냅니다. 2.0에서는 두 줄 모두 null
을 인쇄합니다. 무엇이 바뀌 었습니까?
설명해 주시겠습니까? –
'Write-Type F'에서'F'는''F "'로 해석 될 것입니다. 이것은 내가 원하지 않는 것입니다. – ahihi
정확히, @ JPBlanc 실제로 맞습니다, 당신은 대괄호 안에 함수 인수를 넣으면 안됩니다. 그러나 설명을 찾을 수 없습니다. 왜 그냥이 langu 연령 디자인이나 괄호는 특별한 것을합니다. F를 문자열로 처리하려면 따옴표로 묶어야합니다. 그래서 F는 객체이고 "F"는 문자열입니다. –