当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 关于退货

作者:精品下载站 日期:2024-12-14 02:18:49 浏览:13 分类:玩电脑

关于退货


简短描述

退出当前作用域,该作用域可以是函数、脚本或脚本块。

详细描述

return 关键字退出函数、脚本或脚本块。它可用于在特定点退出作用域、返回值或指示已到达作用域的末尾。

熟悉 C 或 C# 等语言的用户可能希望使用 return 关键字来明确离开作用域的逻辑。

在 PowerShell 中,每个语句的结果都会作为输出返回,即使没有包含 Return 关键字的语句也是如此。 C 或 C# 等语言仅返回 return 关键字指定的一个或多个值。

笔记

从 PowerShell 5.0 开始,PowerShell 通过使用形式语法添加了用于定义类的语言。 在 PowerShell 类的上下文中,除了使用 return 语句指定的内容之外,方法不会输出任何内容。您可以在 about_Classes 中阅读有关 PowerShell 类的更多信息。

句法

return 关键字的语法如下:

return [<expression>]

return 关键字可以单独出现,也可以后跟一个值或表达式,如下所示:

return
return $a
return (2 + $a)

示例

以下示例使用 return 关键字在满足条件时在特定点退出函数。奇数不会相乘,因为 return 语句在该语句执行之前就已退出。

function MultiplyEven
{
    param($number)

    if ($number % 2) { return "$number is not even" }
    $number * 2
}

1..10 | ForEach-Object {MultiplyEven -Number $_}
1 is not even
4
3 is not even
8
5 is not even
12
7 is not even
16
9 is not even
20

在 PowerShell 中,即使不使用 return 关键字,也可以返回值。返回每个语句的结果。例如,以下语句返回 $a 变量的值:

$a
return

以下语句还返回 $a 的值:

return $a

以下示例包含一条旨在让用户知道该函数正在执行计算的语句:

function calculation {
    param ($value)

    "Please wait. Working on calculation..."
    $value += 73
    return $value
}

$a = calculation 14

不显示“请稍候。正在计算...”字符串。相反,它被分配给 $a 变量,如下例所示:

PS> $a
Please wait. Working on calculation...
87

信息字符串和计算结果均由函数返回并分配给 $a 变量。

如果您想在函数中显示消息,从 PowerShell 5.0 开始,您可以使用 Information 流。下面的代码使用 Write-Information cmdlet 以及 InformationActionContinue 更正了上述示例。

function calculation {
    param ($value)

    Write-Information "Please wait. Working on calculation..." -InformationAction Continue
    $value += 73
    return $value
}

$a = calculation 14
Please wait. Working on calculation...
C:\PS> $a
87

返回值和管道

当您从脚本块或函数返回集合时,PowerShell 会自动展开成员并通过管道一次将它们传递一个。这是由于 PowerShell 的一次处理。有关更多信息,请参阅 about_pipelines。

以下返回数字数组的示例函数说明了这一概念。该函数的输出通过管道传输到 Measure-Object cmdlet,该 cmdlet 计算管道中的对象数量。

function Test-Return
{
    $array = 1,2,3
    return $array
}
Test-Return | Measure-Object
Count    : 3
Average  :
Sum      :
Maximum  :
Minimum  :
Property :

要强制脚本块或函数将集合作为单个对象返回到管道,请使用以下两种方法之一:

  • 一元数组表达式

    使用一元表达式,您可以将返回值作为单个对象发送到管道中,如下例所示。

    function Test-Return
    {
        $array = 1,2,3
        return (, $array)
    }
    Test-Return | Measure-Object
    
    Count    : 1
    Average  :
    Sum      :
    Maximum  :
    Minimum  :
    Property :
    
  • 带有 NoEnumerate 参数的 Write-Output

    您还可以将 Write-Output cmdlet 与 NoEnumerate 参数结合使用。下面的示例使用 Measure-Object cmdlet 对通过 return 关键字从示例函数发送到管道的对象进行计数。

    function Test-Return
    {
        $array = 1, 2, 3
        return Write-Output -NoEnumerate $array
    }
    
    Test-Return | Measure-Object
    
    Count    : 1
    Average  :
    Sum      :
    Maximum  :
    Minimum  :
    Property :
    

参见

  • 关于课程
  • about_函数
  • about_Language_Keywords
  • about_范围
  • about_Script_Blocks
  • Write-Information

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯