Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Колин Мук вопрос про Item (http://www.flasher.ru/forum/showthread.php?t=211404)

nelco 25.08.2015 01:04

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

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

samana 25.08.2015 01:29

Не знаю, почему Мук игнорирует типизацию, но вы конечно правы, правильно нужно написать так foodItem:Food, тем самым обеспечив, что в этот метод, можно будет передавать только еду, а не что попало.

nelco 25.08.2015 01:41

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

caseyryan 25.08.2015 07:39

Цитата:

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

Не знаю, почему Мук игнорирует типизацию
Я думаю потому, что для новичков и это то сложно, а если он сразу начал бы вводить и типизацию, то это окончательно взрывало бы мозг всем начинающим

callme 25.08.2015 10:35

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

Wolsh 25.08.2015 19:15

caseyryan
Цитата:

Компилятор сам предположит, что там должен быть объект Food, если он туда передан.
Компилятор ничего подобного предполагать не станет. Если тип не указан, то будет рассматривать объект как Object. Иначе, при попытке передачи неправильного типа, ошибка вылетала бы при компиляции, а не в рантайме.

caseyryan 25.08.2015 20:37

Цитата:

Компилятор ничего подобного предполагать не станет. Если тип не указан, то будет рассматривать объект как Object. Иначе, при попытке передачи неправильного типа, ошибка вылетала бы при компиляции, а не в рантайме.
Да, это я фигню сморозил на сонную голову))


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

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