PowerShell: изящный способ создать закрытия

Две команды являются тем же самым.

можно использовать синтаксис для объявления нескольких объектов:

int[] arrayOne, arrayTwo; //both arrays

int arrayOne[], intOne; //one array one int 

см.: http://java.sun.com/docs/books/jls/second_edition/html/arrays.doc.html

8
задан Community 23 May 2017 в 12:13
поделиться

2 ответа

Вы можете создать функцию, которая принимает блок сценария, вызывает GetNewClosure и возвращает закрытие. Важно, чтобы вы вызывали эту функцию с помощью оператора точки, например:

function =>([scriptblock]$_sb_)
{
    $_sb_.GetNewClosure()
}

function A($block) 
{
    B (. => {Write-Host 2; &$block})
}

function B($block) {Write-Host 1;&$block}

A {Write-Host 3}

Не уверен, что это намного лучше, чем просто вызов GetNewClosure () в блоке сценария. Обратите внимание, что вы можете выбрать другое имя для функции. Я хотел что-то вроде лямбда-выражений C #.

4
ответ дан 5 December 2019 в 22:19
поделиться

Эти ссылки могут немного помочь, когда они говорят о закрытии в PowerShell 2.0

2
ответ дан 5 December 2019 в 22:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: