Является ли или имеет префикс для булевых значений

17

При присвоении имени логическому значению или функции, возвращающей логическое значение, обычно префикс имеет значение «is», например.

  • isPointerNull
  • isShapeSquare

Как насчет ссылки на несколько элементов, если это так:

  • arePointersNull или isPointersNull
  • areShapesNull или isShapesNull

Я могу видеть аргументы для обоих; предлагает согласованность и, возможно, немного лучшую читаемость, делает код более естественным.

Любые мнения?

    
задан briantyler 22.04.2010 в 16:02
источник

6 ответов

29

Во-первых, isPointersNull просто некрасиво. Не делайте этого.

Обычно я использую any или all , так как are может быть неоднозначным. Означает ли это, что «есть нулевые указатели» или «указатели все нулевые»? anyPointersNull и allPointersNull очистить это, IMO.

    
ответ дан Adam Robinson 22.04.2010 в 16:05
источник
7

Пожалуйста, не используйте isPointersNull. Последовательность не является основанием для жертвования грамматикой и удобочитаемостью.

    
ответ дан froadie 22.04.2010 в 16:03
источник
4

Это зависит от языка. Если вы используете Java, «isPointersNull» будет интерпретироваться как поле «pointersNull», где «isPointersNull» не будет использоваться, если вы используете какие-либо средства обработки JavaBean.

Я согласен с тем, что читаемость имеет первостепенное значение, но соглашения о бинах допускают общий анализ объектов.

    
ответ дан Chris Dail 22.04.2010 в 16:07
источник
1

isPointersNull выглядит как опечатка. isPointersNull прекрасно понимает тот факт, что в рассмотрении этого логического объекта участвует более одного объекта. Но если вы хотите согласованности, вы можете обратиться к массиву или коллекции, которые должны быть вашими указателями:

  • isPointerArrayNull
  • isPointerCollectionEmpty
  • и др.
ответ дан Paul Sasik 22.04.2010 в 16:08
источник
0

IMO - зависит от контекста (использования и удобочитаемости) логической переменной.

Например:
- если переменная ссылается на единственный указатель, равный нулю, я бы использовал: isPointerNull
- если переменная ссылается на то, что несколько указателей равны нулю, я бы использовал: arePointersNull

НТН.

    
ответ дан Sunny 22.04.2010 в 16:06
источник
0

Я лично перехожу с isWhatever, если я ссылаюсь на метод getter логической переменной, независимо от того, насколько уродливым она соответствует правилам грамматики go. Но если бы у меня был метод, который делал какую-то проверку объекта на основе какого-либо бизнес-правила (например, если число или числа / являются основными), я бы использовал имена, которые сделают моих учителей английского языка счастливыми.

    
ответ дан tmeisenh 22.04.2010 в 16:09
источник