![]() |
Помогите, пожалуйста, найти ошибку в коде.
Имеется такая задача: даны два текстовых поля и две кнопки. Вводим в поле vvod какое-нибудь число. При нажатии на кнопку btn1 идет проверка есть ли данное число в массиве. Ответ записывается в поле otvet. Кнопка btn2 служит для очистки поля otvet.
Вот AS-код: Код AS3:
|
А что в trace'е пишется?
Код AS3:
|
Bgg, мне не понятно, для чего здесь нужен return. У меня же функция ничего не возращает.
|
Код AS3:
|
голдлидер, return прерывает цикл и возвращает undefined
|
cleptoman, т.е. return останавливает цикл, если найдено верное число, не проверяя далее весь массив.
|
Цитата:
Код AS3:
|
я к тому что, у bgg мысль правильная.
лучше вынесите проверку в отдельный метод и возвращайте булево Код AS3:
|
cleptoman, логическая ошибка
Код AS3:
|
я вот к чему:
Код AS3:
leofit, да, конечно..с копипастами, не провирил ) |
Ну вы намудрили. Ничего не понятно из выше описанного. Вроде бы у меня после вставки return все работает правильно. Никаких ошибок нет.
Код AS3:
Я так понял, что return не проверяет весь массив, если найденно число. К примеру: массив состоит из 100 элементов, введеный в поле элемент в массиве находиться на 50-ом месте. Тогда получается, что return найдя верное число, останавливает проверку, т.е. не проверяя остальные 50 чисел. Правилен ли ход моих мыслей ? |
@cleptomain: из хэлпа про undefined:
Цитата:
|
If a function definition includes a return type, the return statement must be followed by an expression. If no return type is specified and the return statement is used alone, it returns undefined.
http://livedocs.adobe.com/flash/9.0/...ts.html#return |
АУ ответьте да на мой вопрос.
|
Правилен, смотрите пост №4, проверяется весь массив, если находит значение то происходит выход из функции, если нет то сообщает об ошибке
|
всем thank you very much
|
The void data type contains only one value, undefined. In previous versions of ActionScript, undefined was the default value for instances of the Object class. In ActionScript 3.0, the default value for Object instances is null.
по моей логике void - такой же тип как и все остальные. да, согласен, что return undefined - масло масленное, но , в общем верное. зачем тут эксепшн? или я чего-то не понимаю? |
cleptoman, ну этой цитатой Вы свои же слова опровергнули. Поэтому трейся void Вы видите undefined, а я в ABC-коде вижу returnvoid.
Цитата:
|
О, загадочный return?)
|
Цитата:
Код AS3:
Код:
getlocal0 Код AS3:
Код:
getlocal0 Код AS3:
Код:
getlocal0 Всё равно не убедил? |
Код AS3:
|
Действительно!
Код AS3:
Код AS3:
|
ты мне не выкай )
я тебе не про то у каждого метода есть тип возвращаемого значения укажем Number - нам вернуться должно значение этого типа укажем void - вернеца undefined, потому как других он не принимает значений т.е. я к чему веду - по идее return в данном случае и return undefined равны по своей сути и не должны вызывать ошибку |
Код AS3:
Код AS1/AS2:
|
Здорово, возвращается void, но вы мне твердите что undefined.
Вообще говоря void === undefined и спор сугубо религиозный, я лишь чуть-чуть поправил cleptoman`а, не говорив при этом что он неправ. Мне непонятно, откуда такой резонанс. Проще говоря, с точки зрения программиста void - это то, что функция/метод ничего не возвращает, или по ссылке не найти ничего вразумительного. undefined - что что-то неопределенно. Нельзя возвращать что-то, что неопределенно, однако если функция ничего не возвращает - она возвращает неопределенность. По сути, это одно и то же, но разные сущности. Это как function определяет и функции, и методы. Но при этом, по сути, они делают одно и тоже. Отсюда void === undefined. |
Нини, не подумайте чего..
|
да я то же ничо, тока я все-таки останусь при своих))
void != undefined; Number - тип 5 - значение void - тип undefined - значение и то, что неопределено не все undefined ) |
cleptoman: ээ..
Код AS3:
Но рассуждая логически тип не может быть равен значению, это абсурд: флеш плеер же говорит что равен. В абс-коде используется опкод returnvoid, а не push smth, returnvalue. Не трудно догадаться что в случае с void`овым типом функции/метода, где используется returnvoid, а не returnvalue не возвращается значение как таковое. |
void тип данных, единственным значением которого является undefined
* String(undefined) возвращает значение "undefined" (undefined преобразуется в строку). * Number(undefined) возвращает значение NaN. * int(undefined) и uint(undefined) возвращают 0. * Object(undefined) возвращает значение в виде нового экземпляра Object. * Если значение undefined присвоено переменной определенного типа, оно преобразуется в значение по умолчанию для этого типа данных. Никаких предположений, офф документация, спор ни о чем |
Хм, хорошо. void тип, единственное его значение undefined, однако что-то здесь нечисто. Похоже void трансформируется в undefined по ходу действия, или что-то ещё. Надо подумать.
|
В доке по типу void: You can use void only as a return type annotation. Есть еще такой оператор.
|
| Часовой пояс GMT +4, время: 11:58. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.