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

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

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

Регистрация: Jul 2013
Адрес: Каскелен
Сообщений: 86
По умолчанию Колин Мук вопрос про Item

в книге на 165 стр. написано, что в метод eat() аргументом передаём foodItem указывая на то, что там должен быть объект класса Food

вопрос: foodItem уже говорит методу eat, что это объект класса Food что ли? т.е. foodItem - это тоже самое что foodItem:Food получается? в книге просто написано foodItem, а не foodItem:Food...

Старый 25.08.2015, 01:29
samana вне форума Посмотреть профиль Отправить личное сообщение для samana Найти все сообщения от samana
  № 2  
Ответить с цитированием
samana
 
Аватар для samana

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Не знаю, почему Мук игнорирует типизацию, но вы конечно правы, правильно нужно написать так foodItem:Food, тем самым обеспечив, что в этот метод, можно будет передавать только еду, а не что попало.

Старый 25.08.2015, 01:41
nelco вне форума Посмотреть профиль Отправить личное сообщение для nelco Найти все сообщения от nelco
  № 3  
Ответить с цитированием
nelco
 
Аватар для nelco

Регистрация: Jul 2013
Адрес: Каскелен
Сообщений: 86
т.е. если написали просто foodItem, то ещё же не указали, что там должен быть объект класса Food, пока не объявили тип у foodItem:Food? я про то, что он пишет АРГУМЕНТОМ ПЕРЕДАЁМ foodItem, УКАЗЫВАЯ НА ТО, ЧТО ТАМ ДОЛЖЕН БЫТЬ ОБЪЕКТ КЛАССА Food, но фактически это же не указывает на то, что там должен быть объект класса Food, пока не указан тип :Food

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
но фактически это же не указывает на то, что там должен быть объект класса Food, пока не указан тип :Food
В ас3 не жесткая типизация. Компилятор сам предположит, что там должен быть объект Food, если он туда передан. Но если передать другой объект, то вылетит ран тайм эксепшен.
Поэтому да, лучше всегда указывать тип данных.
Цитата:
Не знаю, почему Мук игнорирует типизацию
Я думаю потому, что для новичков и это то сложно, а если он сразу начал бы вводить и типизацию, то это окончательно взрывало бы мозг всем начинающим

Старый 25.08.2015, 10:35
callme вне форума Посмотреть профиль Отправить личное сообщение для callme Найти все сообщения от callme
  № 5  
Ответить с цитированием
callme
 
Аватар для callme

Регистрация: Dec 2014
Сообщений: 312
Мук указывает, что это лишь "логическое соглашение". Просто чтобы знать для себя, что в функцию надо передавать объекты типа Food. Компилятору название параметра до лампочки.

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
caseyryan
Цитата:
Компилятор сам предположит, что там должен быть объект Food, если он туда передан.
Компилятор ничего подобного предполагать не станет. Если тип не указан, то будет рассматривать объект как Object. Иначе, при попытке передачи неправильного типа, ошибка вылетала бы при компиляции, а не в рантайме.
__________________
Reality.getBounds(this);

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Компилятор ничего подобного предполагать не станет. Если тип не указан, то будет рассматривать объект как Object. Иначе, при попытке передачи неправильного типа, ошибка вылетала бы при компиляции, а не в рантайме.
Да, это я фигню сморозил на сонную голову))

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

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

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


 


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


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