ДействиеСценарий / Говнокод #10203 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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 makc3d, (Updated )

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

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

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

Где здесь C++, guest?!

    А не использовать ли нам bbcode?


    8