the subexpression construct and simple parentheses is how voidable
statements are treated. First initialize $a to 0; then use a post-increment expression in parentheses
and assign it to the variable $x:
PS> $a=0
PS> $x=($a++)
Checking the value of $x, you see it’s 0, as expected, and $a is now 1. Now do a second
assignment, this time with the expression in $( ... ):
PS> $x=$($a++)
Checking the value, you see it’s $null:
PS> $x
PS> $x -eq $null
True
This is because the result of the post-increment operation was discarded, so the expression
returned nothing.`
Ну, почему post-increment operation was discarded вроде бы понятно (выражение должно быть вычислено и его результат должен быть отдан в качестве $(), но почему, если мы отбрасываем результат пост-инкремента, будет возвращаться пустота, а не оригинальное значение переменной $a?
как я понимаю: $x = ($a++) эквивалентно $x = $a++ $x = $($a++) эквивалентно: выполнить код в $() и вывод присвоить $x. И тогда получается логично.
Все работает как и должно. В чем вопрос?
Вопрос выше, ответ на него получен, если нужно, могу скопипастить вопрос ниже по чату)
Обсуждают сегодня