我最近讨论了PowerShell的一些微妙的细微差别,并注意到我无法避免使用这个平凡的函数在字符串的开头返回一个新行...
Function Why() {
""
return "Well I tried."
}
Run Code Online (Sandbox Code Playgroud)
这返回"\ r \nWell I try".
Write-Host "Starting test."
$theBigQuestion= Why
Write-Host $theBigQuestion
Write-Host "Ending test."
Run Code Online (Sandbox Code Playgroud)
这将输出以下内容:
Starting test.
Well I tried.
Well I tried.
Ending test.
Run Code Online (Sandbox Code Playgroud)
现在,这似乎是PowerShell将一个输出与另一个输出连接起来.但为什么?是什么让我认为我想让空白行成为return语句的一部分?我(可能是错误地)喜欢使用这样的行作为速记,或者为了调试目的更仔细地检查变量.
这个功能:
Function Why() {
""
return "Well I tried."
}
Run Code Online (Sandbox Code Playgroud)
返回一个包含两个字符串的数组.第一个字符串是一个空字符串,第二个字符串是"我试过了.".当PowerShell显示一个字符串数组时,它会将每个字符串放在换行符上.
25> $r = why
26> $r.GetType()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Object[] System.Array
27> $r[0].Length
0
28> $r[1]
Well I tried.
Run Code Online (Sandbox Code Playgroud)