#powershell #boolean #naming-conventions
#powershell #логическое значение #соглашения об именовании
Вопрос:
У меня возникли проблемы с поиском любого подходящего соглашения об именах в PowerShell (глагол-существительное), которое отражало бы программирование:
IsApple() {
return Fruit.Type == Fruits.Apple
}
Существует ли такое соглашение в PS?
Я не нашел ни одного командлета, имеющего ‘is’ или ‘has’ в качестве глагола. Я видел, как люди использовали, например check-fruit
, , но я довольно недоволен таким именем для функции. Это неявно предполагает, что если я дам ему фрукт, он скажет мне, что это за фрукт.
Конечно, это достаточно простой случай, который, возможно, не стоит отдельной функции, Но иногда вам придется выполнять значительно более сложные проверки, включая регулярные выражения, запросы AD и т. Д., Только для того, Чтобы ответить на вопрос «Да» или «Нет» и построить на нем дальнейшее выполнение скрипта.
Не представляется оправданным не извлекать эти проверки в отдельную функцию, но какое соглашение об именах вы бы использовали, чтобы сообщить читателю (желательно, не переходя к телу функции «Is-like»), что я проверяю, как будто я сразу знаю, что я делаюпроверка при просмотре IsApple()
Причина, по которой я спрашиваю, заключается в том, что я не видел никаких командлетов в форме is-apple
has-driver
etc.
Комментарии:
1. Вот статья MSDN об утвержденных глаголах для дальнейшего использования
Ответ №1:
В PowerShell для функции есть утвержденные глаголы. Они отличаются от версии к версии, но вы можете получить свои с помощью Get-Verb
командлета.
Что касается вашего случая, я мог бы подумать Assert-IsApple
или Test-IsApple
Для справки, вот ссылка на официальный список глаголов для PowerShell.