gpt4 book ai didi

.net - PowerShell:一种创建闭包的优雅方式

转载 作者:行者123 更新时间:2023-12-04 08:18:38 30 4
gpt4 key购买 nike

Keith Hill向我解释说 blocks in PowerShell are not closures要从块创建闭包,我必须调用方法 .GetNewClosure() .

有没有什么优雅的方法可以从块中创建闭包? (例如,创建一个包装函数,一个别名?,...)

例子:

{ block }
${ closure } # ???

最佳答案

您可以创建一个接受脚本块、调用 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# lambdas 的东西。

关于.net - PowerShell:一种创建闭包的优雅方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1831955/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com