1. ActionScript / Говнокод #10203

    −107

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    // вообще дикое дежавю, может оно тут уже есть
    		public static function construct(type:Class, ...arguments):* {
    			if (arguments.length > 10)
    				throw new Error('You have passed more arguments than the "construct" method accepts (accepts ten or less).');
    			
    			switch (arguments.length) {
    					case 0 :
    						return new type();
    					case 1 :
    						return new type(arguments[0]);
    					case 2 :
    						return new type(arguments[0], arguments[1]);
    					case 3 :
    						return new type(arguments[0], arguments[1], arguments[2]);
    					case 4 :
    						return new type(arguments[0], arguments[1], arguments[2], arguments[3]);
    					case 5 :
    						return new type(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4]);
    					case 6 :
    						return new type(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5]);
    					case 7 :
    						return new type(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5], arguments[6]);
    					case 8 :
    						return new type(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5], arguments[6], arguments[7]);
    					case 9 :
    						return new type(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5], arguments[6], arguments[7], arguments[8]);
    					case 10 :
    						return new type(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5], arguments[6], arguments[7], arguments[8], arguments[9]);
    			}
    		}

    http://svn.as3.casalib.org/releases/latest/code/org/casalib/util/ClassUtil.as

    Запостил: makc3d, 05 Мая 2012

    Комментарии (5) RSS

    • [:||||||||||||||||||||||||||||||||||||||| |||||||||||||||||||||||||||||||||||||||| |||||||||||||||||:]
      Ответить
      • хоронили флеш порвали баян в двух местах
        Ответить
    • Его тут есть штуки три
      Ответить
    • что тут смешного, это суровый быт флешеров, у нас нельзя динамически сгенерить класс с произвольным кол-вом аргументов, только таким макаром, так что надо плакать и это не гавнокод, а вполне себе нормальный и жизненный кусок кода.
      Ответить
    • Тут есть зато дополнительный интересный момент. arguments - зарезервировано для класса arguments, и вообще-то, странно, что компилятор не ошибается (а может и ошибается - хз?). Т.е. получилось что-то типа: function(int:String):void {} - сразу и не угадаешь, что автор хотел сказать.
      Ответить

    Добавить комментарий