Можете ли вы выполнять встроенные манипуляции с возвратами функций в PowerShell? - PullRequest
0 голосов
/ 09 июля 2020

Я имею в виду, что у вас может быть что-то вроде: $output = Get-Date.month. Очевидно, это работает, только если вы знаете тип возвращаемого значения. Это было бы очень полезно для того, чтобы сделать код более лаконичным.

Ответы [ 2 ]

3 голосов
/ 09 июля 2020

Полезный ответ Матиаса Р. Джессена показывает полезность и лаконичность оператора доступа к члену.

Для дальнейшего расширения вы можете преобразовать или изменить тип вывода. Затем используйте любой метод, которым хотите получить доступ к свойству. Возьмите определенную функцию ниже:

Function Foo {
'October 23, 2020'
}

(Foo).GetType()
IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     True     String                                   System.Object

Мы знаем, что функция Foo возвращает строку, у которой нет свойства Month. Мы можем преобразовать String в объект DateTime.

([datetime](Foo)).GetType()
IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     True     DateTime                                 System.ValueType

([datetime](Foo)).Month
10

[datetime](Foo) | Select -Expand Month
10

Вы можете использовать оператор -as для изменения типа при условии, что он может быть приведен как есть.

((Foo) -as [datetime]).Month
10
3 голосов
/ 09 июля 2020

Абсолютно

Оператор доступа к члену . работает с любым выражением, а не только с переменными:

$output = (Get-Date).Month
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...