Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Флейм (http://www.flasher.ru/forum/forumdisplay.php?f=53)
-   -   глобальные переменные зло? (http://www.flasher.ru/forum/showthread.php?t=164069)

wvxvw 15.08.2011 15:45

Это потому что во флеше есть разрушающее присваивание, которое, вообще делает переменные возможными, в том же Erlang'e его нет. И еще во флеше нельзя описать, например:
Код:

void foo(baz* const bar) { ... }
а в том же Erlang'e так, можно (но это код на С++, чтобы было понятнее).

Котяра 15.08.2011 15:50

Цитата:

а в том же Erlang'e так, можно
Скорее только так и можно. Параметры функции - суть константы. Менять их нельзя и ничего специального для этого прописывать не надо.
На первый взгляд, кажется, что это убогость языка, но люди знакомые с понятием юнит-тестирование сразу поймут в чём прелесть такого подхода.

carrotoff 15.08.2011 16:28

in4core, суть не в том, что это работает или нет, а в том, что эта операция абсолютно бессмысленна и не нужна.

in4core 15.08.2011 17:21

carrotoff да ну нафиг опять? ))

Код AS3:

function a(n:int) {
    // рассматривается в случает нет переменных
    if( n > 100 ) n = 100;
    else if( n < - 500 ) n = n*2;
    else 'ok';
    superOtherMethod(n);
}


Bgg 15.08.2011 17:36

in4core ломает фундаментальные устои программирования.

i.o. 15.08.2011 17:39

Цитата:

carrotoff да ну нафиг опять? ))
Да придет спаситель)

carrotoff 15.08.2011 17:40

in4core, ну, раз уж такое дело пошло, то на спор и жестче можно написать! Не хочется рассматривать подобные случаи.

Если вы действительно так пишите, то ваш код - настоящий АДЪ. Почитайте что-нибудь о структурировании кода, например, это.

in4core 15.08.2011 17:41

Цитата:

in4core ломает фундаментальные устои программирования.
Да нет же)) я не хочу сказать, что так надо делать и это хорошо. Я пояснил по факту, что такое может быть и оно может быть в контексте приемлемо для определенной части функционала

Добавлено через 1 минуту
carrotoff у меня давно уже более менее чистый код, когда нет спешки и не работаешь на отбалдысь)

carrotoff 15.08.2011 17:43

А никто и не говорил что так нельзя сделать. Этого не нужно делать!

in4core 15.08.2011 18:05

Ну понятно что не нужно. спор только изначально шел о том, что НЕЛЬЗЯ - яже доказал что можно. непонятно в чем холивар

carrotoff 15.08.2011 18:23

сомнительное доказательство, потому как я тоже смогу доказать, что ходить в туалет мимо цели возможно, но кто меня поймет?:)

in4core 15.08.2011 18:42

Хм тогда и надо было сказать МОЖНО - но не нужно) а не категорично. Ну а вообще с другой стороны, мой пример ( если убрать superMethod) вполне адекватен.

например описывается какое то жуткое жвижение или что то в этом духе

Код AS3:

function a(n:int):Number {
      if(n > 100)  n = n%10 / (n*3 + n%2);
      else n = 500 * (n^7) ;
      return n;
}


saikspaik 15.08.2011 18:58

Цитата:

Сообщение от carrotoff (Сообщение 1021834)
сомнительное доказательство, потому как я тоже смогу доказать, что ходить в туалет мимо цели возможно, но кто меня поймет?:)

Все поймут, ходить мимо цели возможно, разве нет?
Так и с переменными - менять можно, а нужно или нет, вопрос другой.

Wolsh 15.08.2011 19:13

Если бы было нельзя, ВОПРОС бы не стоял, так?

in4core 15.08.2011 19:14

по ходу ))

Котяра 15.08.2011 19:17

Разговор глухого со слепым.
Я говорил о том, что можно написать вычисление факториала без помощи переменных - и есть языки где переменных нет вообще. То, что в AS3 аргументы(параметры) являются переменными не отрицает подхода, когда их используют как константы.
Я говорил вообще в контексте общей темы. что ОБЩИЕ переменные, на которые могут влиять несколько объектов, а тем более глобальные, плохо вяжутся с безопасным программированием и программированием через TDD. Для этих подходов наилучшая концепция - отказ от переменных (или хотя бы отказ от нелокальных переменных, про глобальные вообще молчу)

dimarik 15.08.2011 20:02

Придется опять во флейм поселить. Кто снова выпустит — тот редиска.


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

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