Форум 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=127062)

udaaff 06.07.2009 02:05

Имеет отношение к стилю. Это мое мнение.
Я считаю, что если переменная имеет "числовой" тип, то нужно явно показывать это в условии. Мне так больше нравиться, и кажется более логичным, уж почему не знаю.

AL.exe 06.07.2009 11:05

Цитата:

Сообщение от Obi (Сообщение 833236)
Ну это, знаете ли, спорный момент. Строго говоря, пятерка — число, а не булево значение, потому логически, пятерка правдой быть не может.
Код AS1/AS2:

trace(5 == true) // false;

Ну и плюс читабельность повышается.


Вы бы еще со стрингом сравнивали.

Код AS3:

trace(Boolean(5) == true ) //true
trace(Boolean(0) == false) //true


Obi 06.07.2009 12:19

Цитата:

Сообщение от AL.exe (Сообщение 833394)
Вы бы еще со стрингом сравнивали.

Ага, а то, что вы пятерку пытаетесь привести к булеву значению — это конечно нормально, продолжайте.

Ну и кстати ничего не мешает string привести к правде. Просто это плохо.

wvxvw 06.07.2009 12:28

Не имеет отношения это к стилю - это просто непонимание работы програмы... если вы не понимаете, что if () уже конвертирует выражение в булевое значение - это значит, что вы просто не умеете использовать эту конструкцию / используете ее не по назначению. Кроме того, флешевый компилятор не на столько сообразительный, чтобы за вами такую чушь исправлять - если напишете сравнение, то в исполняемом коде получите сравнение + конвертацию вместо просто конвертации.

Цитата:

Сообщение от Obi (Сообщение 833404)
Ага, а то, что вы пятерку пытаетесь привести к булеву значению — это конечно нормально, продолжайте.

А вот так чтобы мануал открыть перед тем как глупости писать? Все простые типы спокойно конвертируются из одного в другой.

udaaff 06.07.2009 12:41

Конечно я этого не понимаю, это только ты понимаешь. Свой код можно оформлять по разному, если ты этого не понимаешь, то я тебе сочувствую.

wvxvw 06.07.2009 12:48

Еще раз... это не оформление, твой код:
Код AS3:

if (a != 0)

и мой код:
Код AS3:

if (a)

компилируются в разный байткод и не взаимозаменимы - о каком оформлении речь?

udaaff 06.07.2009 12:49

Если для тебя мое мнение ничего не значит, почитай соглашения по написанию тогда, хотя-бы: http://opensource.adobe.com/wiki/dis...ng+Conventions с примерами оформления. Обрати внимание на раздел Coercion.
Я не говорю, что это так и должно быть, как кому нравиться, тот так и пишет.

wvxvw 06.07.2009 12:52

Не поверишь, я их читал...
Цитата:

Coercion

Don't compare a Boolean value to true or false; it already is one or the other.

Do this:

if (flag)

Not this:

if (flag == true)

А вот ты похоже, не читал ;)

udaaff 06.07.2009 12:53

Речь идет не о Boolean!!

Obi 06.07.2009 13:05

Цитата:

Сообщение от wvxvw (Сообщение 833406)
А вот так чтобы мануал открыть перед тем как глупости писать? Все простые типы спокойно конвертируются из одного в другой.

Причем тут мануал? Я прекрасно знаю, что конвертируются, но это не значит, что не нужно указывать явно. Это вопрос читабельности. В классе из 1000 строк с вашими
Код AS1/AS2:

if(a) while(b) c ? d : e

будет неразбериха. Гораздо понятнее будет написать
Код AS1/AS2:

if(a != undefined) {
  while(b > 0) {

Так можно и к 'hello world' прибавить 17, и все знают, что 17 сконвертируется в строку. Просто логично это явно указать, поскольку число к строке прибавить нельзя.

И да, простые типы тут совсем не в тему.
Код AS3:

var tf:TextField = new TextField();
trace(Boolean(tf)) // true

Вот вам и текстфилд стал правдой.

К тому-же, что бы вы не говорили, но пятерка правдой быть не может. Воть хоть убейте меня, но — не может.


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

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