Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Помогите, пожалуйста, найти ошибку в коде. (http://www.flasher.ru/forum/showthread.php?t=145900)

leofit 22.10.2010 19:25

Код AS3:

function test():void {
        return;
}
trace(test()); //undefined

Кого и в чем Вы пытаетесь убедить? Я до сих пор не уловил предмет спора

Psycho Tiger 22.10.2010 19:27

Действительно!
Код AS3:

var array:Array=[];
trace(array[5]); //черт, кто ж туда undefined положил

Ещё для размышлений:
Код AS3:

trace(void); //undefined


cleptoman 22.10.2010 19:31

ты мне не выкай )

я тебе не про то

у каждого метода есть тип возвращаемого значения
укажем Number - нам вернуться должно значение этого типа
укажем void - вернеца undefined, потому как других он не принимает значений

т.е. я к чему веду - по идее return в данном случае и return undefined равны по своей сути и не должны вызывать ошибку

leofit 22.10.2010 19:31

Код AS3:

function test() {
        return;
}
trace(flash.utils.getQualifiedClassName (test())); //void

Добавлено через 1 минуту
Код AS1/AS2:

function test():* {
        return;
}
trace(flash.utils.getQualifiedClassName (test())); //void
var array:Array=[];
trace(array[5]); //черт, кто ж туда undefined положил
trace(flash.utils.getQualifiedClassName (array[5])); //void

По моему, это называется флуд )

Psycho Tiger 22.10.2010 19:41

Здорово, возвращается void, но вы мне твердите что undefined.
Вообще говоря void === undefined и спор сугубо религиозный, я лишь чуть-чуть поправил cleptoman`а, не говорив при этом что он неправ. Мне непонятно, откуда такой резонанс.

Проще говоря, с точки зрения программиста void - это то, что функция/метод ничего не возвращает, или по ссылке не найти ничего вразумительного. undefined - что что-то неопределенно. Нельзя возвращать что-то, что неопределенно, однако если функция ничего не возвращает - она возвращает неопределенность. По сути, это одно и то же, но разные сущности. Это как function определяет и функции, и методы. Но при этом, по сути, они делают одно и тоже. Отсюда void === undefined.

leofit 22.10.2010 19:45

Нини, не подумайте чего..

cleptoman 22.10.2010 19:54

да я то же ничо, тока я все-таки останусь при своих))
void != undefined;

Number - тип
5 - значение

void - тип
undefined - значение

и то, что неопределено не все undefined )

Psycho Tiger 22.10.2010 21:58

cleptoman: ээ..
Код AS3:

                        trace(undefined === void); //true
                        trace(Number === 5.3); //Compile error

Компилятор не даст явно сравнить такую конструкцию. Поэтому Ваше предположение проверить я не могу.

Но рассуждая логически тип не может быть равен значению, это абсурд: флеш плеер же говорит что равен. В абс-коде используется опкод returnvoid, а не push smth, returnvalue. Не трудно догадаться что в случае с void`овым типом функции/метода, где используется returnvoid, а не returnvalue не возвращается значение как таковое.

leofit 23.10.2010 00:52

void тип данных, единственным значением которого является undefined

* String(undefined) возвращает значение "undefined" (undefined преобразуется в строку).
* Number(undefined) возвращает значение NaN.
* int(undefined) и uint(undefined) возвращают 0.
* Object(undefined) возвращает значение в виде нового экземпляра Object.
* Если значение undefined присвоено переменной определенного типа, оно преобразуется в значение по умолчанию для этого типа данных.

Никаких предположений, офф документация, спор ни о чем

Psycho Tiger 23.10.2010 01:34

Хм, хорошо. void тип, единственное его значение undefined, однако что-то здесь нечисто. Похоже void трансформируется в undefined по ходу действия, или что-то ещё. Надо подумать.


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

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