Что такое PowerShell ScriptBlock

PowerShell ScriptBlock не являетсялексическое закрытие поскольку это не закрывает по переменным, на которые ссылаются в его объявлении окружающей среды. Вместо этого он, кажется, использует динамическую область видимости и свободные переменные, которые связаны во время выполнения в лямбда-выражении.

function Get-Block {
  $b = "PowerShell"
  $value = {"Hello $b"}
  return $value
}
$block = Get-Block
& $block
# Hello
# PowerShell is not written as it is not defined in the scope
# in which the block was executed.


function foo {
  $value = 5
  function bar {
    return $value
  }
  return bar
}
foo
# 5
# 5 is written $value existed during the evaluation of the bar function
# it is my understanding that a function is a named scriptblock
#  which is also registered to function:

Вызов GetNewClosure () для ScriptBlock возвращает новый ScriptBlock, который закрывается по указанным переменным. Но это очень ограничено по объему и возможностям.

Что такое классификация ScriptBlock?

Ответы на вопрос(2)

Ваш ответ на вопрос