Какое соглашение о правильном имени функции внутри модулей powershell? - PullRequest
2 голосов
/ 28 июня 2011

Я создаю модуль powershell и следую соглашениям об именах глаголов для существующего для экспортируемых функций.

например,

function Do-Something() {
    sleep 10
}

Импорт модулей работает как положено ... НОесли я импортирую этот модуль как пользовательский объект.

$myObject = Import-Module MyModule -AsCustomObject

Затем попробуйте получить доступ к функции, я получу ошибку разбора:

PS > $myObject.Do-Something()
You must provide a value expression on the right-hand side of the '-' operator.
At line:1 char:22
+ $myObject.Do- <<<< Something()
    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : ExpectedValueExpression

Я не понимаю.Означает ли это, что я не могу использовать «-» в методах, принадлежащих объектам?Я заметил, что .NET-объекты и другие объекты PSO не имеют «-» в именах своих методов.Я еще не нашел способ избежать этого ... но даже в этом случае это было бы грязно.

Ответы [ 3 ]

2 голосов
/ 28 июня 2011

Попробуйте это: $ MyObject. "Сделай что-то" ()

0 голосов
/ 28 июня 2011

У меня уже была эта проблема.Возможно, вы захотите добавить псевдоним внутри модуля, чтобы разрешить DoSomething (наряду с любыми другими функциями в вашем модуле).

0 голосов
/ 28 июня 2011

Вы можете сделать

$myObject."Do-Something"()

Функции обычно пишутся в регистре Паскаля (DoSomething) или с _ (подчеркивание) между словами (do_something).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...