sábado, 24 de enero de 2009

Leña del árbol caído: Maravilloso código.

Soy gran fanático de The Daily WTF. Desde hace un par de meses, casi todos los días paso de 10 a 15 minutos riéndome solo gracias a ese maravilloso basural de código.

Así y todo, en este tiempo no he encontrado un delirio cuya belleza y perfección superen las de este breve ejemplo que nos regala Diario de programación y que tengo… tengo que incluir aquí, en versión completa para mayor regocijo.

  1. public byte[] getBytes (int valor)   
  2. {  
  3.    byte [] a = new byte[1];  
  4.    switch (valor)   
  5.    {  
  6.       case 0:  
  7.          a[0]=(byte)0;  
  8.          break;  
  9.       case 1:  
  10.          a[0]=(byte)1;  
  11.          break;  
  12.       case 2:  
  13.          a[0]=(byte)2;  
  14.          break;  
  15.       case 3:  
  16.          a[0]=(byte)3;  
  17.          break;  
  18.       case 4:  
  19.          a[0]=(byte)4;  
  20.          break;  
  21.       case 5:  
  22.          a[0]=(byte)5;  
  23.          break;  
  24.       case 6:  
  25.          a[0]=(byte)6;  
  26.          break;  
  27.       case 7:  
  28.          a[0]=(byte)7;  
  29.          break;  
  30.       case 8:  
  31.          a[0]=(byte)8;  
  32.          break;  
  33.       case 9:  
  34.          a[0]=(byte)9;  
  35.          break;  
  36.       case 10:  
  37.          a[0]=(byte)10;  
  38.          break;  
  39.       case 11:  
  40.          a[0]=(byte)11;  
  41.          break;  
  42.       case 12:  
  43.          a[0]=(byte)12;  
  44.          break;  
  45.       case 13:  
  46.          a[0]=(byte)13;  
  47.          break;  
  48.       case 14:  
  49.          a[0]=(byte)14;  
  50.          break;  
  51.       case 15:  
  52.          a[0]=(byte)15;  
  53.          break;  
  54.      default:  
  55.          a[0]=(byte)0;  
  56.    }  
  57.    return a;  
  58. }  

No digan que no es una belleza… sobre todo si, por jugar, tratamos de hacer lo mismo con más fiaca para escribir y menos fuerza bruta:

  1. public byte[] getBytes (int valor)  
  2. {   
  3.    return new byte[1] {   
  4.       (byte)(valor >= 1 && valor <= 15 ? valor : 0)  
  5.    };  
  6. }  

...eso suponiendo que sirva para algo hacer una función así.

No hay comentarios.: