PowerShell에 캐스팅.이상한 구문
파일에서 변수로 XML을 읽는 작업은 다음과 같이 수행할 수 있습니다.
[xml]$x = Get-Content myxml.xml
하지만 왜 안 됩니까?
$x = [xml]Get-Content myxml.xml
다음과 같은 의미가 있습니다.
Unexpected token 'Get-Content' in expression or statement.
At line:1 char:20
+ $x=[xml]get-content <<<< myxml.xml
+ CategoryInfo : ParserError: (get-content:String) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : UnexpectedToken
즉, 등호 좌측에 캐스트 작업이 이루어지는 이유는 무엇입니까?일반적으로 프로그래밍 언어에서 캐스팅은 Java와 같이 오른쪽에서 이루어집니다.
a = (String)myobject;
$x = [xml](Get-Content myxml.xml)
PowerShell에서는 모든 것이 개체입니다.그것은 cmdlet을 포함합니다.주조는 한 개체 유형을 다른 개체 유형으로 변환하는 과정입니다.
이것이 캐스팅에 의미하는 바는 수학에서처럼 불필요한 괄호를 추가하여 정확히 무슨 일이 일어나고 있는지를 스스로 설명하는 데 도움을 줄 수 있다는 것입니다.수학에서,1 + 2 + 3
될 수 있습니다((1 + 2) + 3)
뜻을 바꾸지 않고
PowerShell의 경우 다음 개체(오른쪽)에 대해 주조가 수행되므로,$x = [xml] get-content myxml.xml
된다$x = ([xml] (get-content)) myxml.xml
. 이것은 당신이 cmdlet을 casting하려고 하는 것을 보여줍니다.xml
허용되지 않는 개체입니다.
분명히 이것은 당신이 하려는 것이 아니기 때문에, 당신은 먼저 cmdlet을 실행한 후, AKA를 캐스팅해야 합니다.$x = [xml] (get-content myxml.xml)
. 다른 방법으로는[xml] $x = get-content myxml.xml
, 는 변수를 다음과 같은 유형으로 선언하고 있습니다.xml
할당된 것(등호의 오른쪽 전체라고 함)은 다음으로 캐스트됩니다.xml
.
언급URL : https://stackoverflow.com/questions/11685265/casting-in-powershell-weird-syntax
'programing' 카테고리의 다른 글
안드로이드에서 드로블의 색상을 변경하는 방법은? (0) | 2023.09.19 |
---|---|
3개의 함수를 차례로 실행하려면 어떻게 호출해야 합니까? (0) | 2023.09.19 |
sscanf에서 읽은 문자 수를 가져오시겠습니까? (0) | 2023.09.19 |
FTP 업로드 및 다운로드 스크립트 방법 (0) | 2023.09.19 |
MySQL 데이터베이스에 저장된 PHP를 실행하려면 어떻게 해야 합니까? (0) | 2023.09.19 |