Синтаксическая парадигма объективного C - PullRequest
4 голосов
/ 11 августа 2011

Я довольно новичок в Objective C, и мои ноги мокрые! Я сталкивался с двумя различными обозначениями в синтаксисе,

  1. Точечная запись
  2. Обозначение в квадратных скобках

Я хотел бы спросить, что было бы более предпочтительным? Поскольку я изучаю это сразу после Java, я намного больше знаком с точечной нотацией. Так следует ли считать это нормальным шаблоном для любого кода, который я пишу? Стандартизирована ли отрасль, какую нотацию использовать?

Спасибо за вашу помощь

Ответы [ 4 ]

4 голосов
/ 11 августа 2011

Точечная запись доступна только для свойств и, конечно, структур C. Предпочитаете ли вы:

foo.aProperty = bar.anotherProperty;

или

[foo setAProperty:[bar anotherProperty]];

... это вопрос вкуса. Я лично предпочитаю второй, потому что совершенно ясно, что в нем задействованы два вызова метода. На первый взгляд в этом случае нельзя сказать:

CGFloat x = myView.frame.origin.x;

Это эквивалентно:

CGFloat x = [myView frame].origin.x;

Во втором примере ясно видно, что задействован вызов метода, но первый пример имеет тенденцию быть более читабельным.

Так что используйте то, что подходит вам, оба в порядке (хотя я думаю, что большинство разработчиков склонны использовать первый, отчасти из-за того, что он быстрее печатается и имеет тенденцию быть более разборчивым).

3 голосов
/ 11 августа 2011

Используйте точечную нотацию для ссылки на свойства и квадратную нотацию для вызова методов. Оба результата приводят к отправке сообщения, но по крайней мере вы отделяете состояние от поведения.

1 голос
/ 11 августа 2011

Я не думаю, что существует какой-либо стандарт, но я предпочитаю «квадратную скобку» для вызова методов и «точечную» для доступа к свойствам. Хотя точечная запись работает одинаково, она помогает различать две операции

1 голос
/ 11 августа 2011

Ну, если я не ошибаюсь, square notation более родной. Это то, что было более распространенным. dot notation появился недавно.

Я видел код с использованием обоих стилей ...

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