PowerShell:
Организация кода в функции

Как это сделать:

Давайте напишем функцию для расчета суммы двух чисел. Просто, но это наглядно иллюстрирует суть.

function Add-Numbers {
    param (
        [int]$FirstNum,
        [int]$SecondNum
    )
    return $FirstNum + $SecondNum
}

# Вызов функции с 5 и 10
$sum = Add-Numbers -FirstNum 5 -SecondNum 10
Write-Output "Сумма равна $sum"

Пример вывода:

Сумма равна 15

Глубокое погружение

Функции в PowerShell, как и в большинстве языков программирования, не новость. Мы компартментализируем код с дней Fortran. Речь идет о том, чтобы “не изобретать велосипед”. Альтернативы? Конечно, скрипты или cmdlet. Но им не хватает аккуратности и контекстно-зависимой организации, как у функций внутри скриптов.

Реализация? Функции могут быть простыми, как наш пример, или сложными, с областями видимости, входными данными из конвейера и многим другим. Возьмем Расширенные Функции. Они имитируют cmdlet с параметрами, имеющими атрибуты, например, [Parameter(Mandatory=$true)]. Это лишь малая часть гибкости PowerShell.

Смотрите также