Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 05.09.2013, 12:59
romzes вне форума Посмотреть профиль Отправить личное сообщение для romzes Найти все сообщения от romzes
  № 1  
Ответить с цитированием
romzes

Регистрация: Mar 2010
Сообщений: 18
По умолчанию Имя переменной и имя пакета

В проекте есть пакет с именем package_name.
Если в одном из классов проекта создать объект с именем package_name, то после компиляции он воспринимается, как пакет. При компиляции никаких ошибок нет, а во время выполнения, конечно, возникают ошибки. Например, при попытке вызвать метод someMethod для объекта package_name, программа пытается вызвать этот метод для пакета package_name и, разумеется, его не находит.
При этом, если я создам объект с именем, совпадающим с именем родного пакета actionscript (flash, например), то все в порядке.

Подскажите пожалуйста, как избежать такой ситуации?
Я использую для разработки FlashDevelop.


Последний раз редактировалось romzes; 05.09.2013 в 13:12.
Старый 05.09.2013, 14:28
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 2  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Избежать легко. Никогда не именовать переменные и пакеты одинаково.
Писать код в соответствии с конвенциями. В ас3 вообще не принято использовать андерскор _ в названиях чего-либо, кроме констант.

Старый 05.09.2013, 14:44
romzes вне форума Посмотреть профиль Отправить личное сообщение для romzes Найти все сообщения от romzes
  № 3  
Ответить с цитированием
romzes

Регистрация: Mar 2010
Сообщений: 18
Спасибо. То есть так принято — не именовать переменные и пакеты одинаково? А можно ссылку на «конвенции»? Любопытно почитать. И на счет нотации с помощью символа подчеркивания тоже.

Я думаю, когда почитаю, для меня многое станет яснее, но пока я логики в таком ограничении не вижу. Если, к примеру, у меня пакет, посвященный сообщениям, называется messages, что логично, почему бы мне некий реестр сообщений не назвать messages? То же ведь логично — «говорящее» название, которое помогает понимать код. Ради чего мне отказываться от этого?

Но это вопрос логики и на него может быть несколько ответов. Мне интереснее техническая сторона — как я и писал, назвать переменную flash (что совпадает с именем пакета языка flash) я могу без проблем, а messages (что совпадает с именем моего пакета messages) не могу. Как так?

Старый 05.09.2013, 14:45
KumoKairo вне форума Посмотреть профиль Отправить личное сообщение для KumoKairo Найти все сообщения от KumoKairo
  № 4  
Ответить с цитированием
KumoKairo
 
Аватар для KumoKairo

Регистрация: Jan 2013
Сообщений: 550
Записей в блоге: 1
caseyryan, а как же имена приватных и протектед полей? Часто встречал, что имя приватного или протектед поля начинается с андерскора, чтобы сделать геттер и сеттер с тем же названием, только без этого андерскора

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

Насчет "конвенции" - полный список "требований" к стилистике кода на AS3

Старый 05.09.2013, 14:53
romzes вне форума Посмотреть профиль Отправить личное сообщение для romzes Найти все сообщения от romzes
  № 5  
Ответить с цитированием
romzes

Регистрация: Mar 2010
Сообщений: 18
KumoKairo, О! За ссылку спасибо.

А структурировать проект просто приходится, когда количество классов растет.

Старый 05.09.2013, 20:09
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 6  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
caseyryan, а как же имена приватных и протектед полей? Часто встречал, что имя приватного или протектед поля начинается с андерскора, чтобы сделать геттер и сеттер с тем же названием, только без этого андерскора
Да, согласен, это я упустил. Потому что думал про стыки слов в названиях переменных и методов, по типу php.

Создать новую тему Ответ Часовой пояс GMT +4, время: 17:29.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
имена , пакеты

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 17:29.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.