Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Noticias
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Colaboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #21  
Antiguo 10-12-2015
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.609
Poder: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Cita:
Empezado por AgustinOrtu Ver Mensaje
1. Declarar todas las variables arriba dentro de la clausula var. No le encuentro ninguna ventaja, no me vengan con que "es mas ordenado", yo creo que mas bien al contrario, es un caos: Ya que tenes que ir hasta arriba a declarar la variable...
¿Qué tan "arriba" tendrías que ir?

Cita:
Empezado por AgustinOrtu Ver Mensaje
2. La sintaxis lambda creo que apesta: tener que escribir
Código Delphi [-]
  TThread.Queue(NIL, procedure
  var
   X, B: Integer;
  begin

  end);
Es pura "ceremonia" y realmente va en contra del dogma de Pascal de "codigo claro, conciso y legible".
Hay que tener cuidado con los dogmas de cualquier tipo, y no confundirlos con las recomendaciones y buenas prácticas.

Los métodos anónimos, que son una especie de rutinas contextualizadas, forman parte de esos pequeños pero importantes avances que ha tenido la programación. Donde quiera que una función de retrollamada —callback— necesitaba llamarse pasándole varios parámetros dados previamente por el instalador de la misma, a menudo aplicando enrevesados moldes de tipo sobre ellos, ahora puede emplearse un procedimiento sencillo como el de tu ejemplo, reduciendo en buena medida la complejidad del código y volviéndolo, por cierto, más «claro, conciso y legible». Lo copio y pego con unos pequeños retoques:
Código Delphi [-]
  TThread.Queue (Nil,
    Procedure
    Var
      X, B :Integer;
    Begin
      //...
    End);

Un cordial saludo.

Al González.
Responder Con Cita
  #22  
Antiguo 10-12-2015
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Declarar las variables "arriba" es parte del buen orden que tiene pascal. Es cierto que en ocasiones se antoja no tener que declarar hasta el más insulso contador en la sección var, pero, en general, cuando estás leyendo código ajeno (o propio después de un tiempo), es bueno saber dónde encontrar la declaración de una variable en lugar de estar escaneando el código.

En cuanto a las funciones anónimas, la realidad es que son como las variables declaradas donde sea. Son útiles en casos específicos pero siempre y cuando no se abuse.

LineComment Saludos
Responder Con Cita
  #23  
Antiguo 10-12-2015
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.003
Poder: 26
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
He estado echándole un vistazo al Swift ese, y es bien feo. no me gusta. Me parece muy confuso.

Cita:
Empezado por AgustinOrtu Ver Mensaje
3. Los for en Delphi solamente se pueden incrementar de a 1... en serio, es una total ridicules!
Eso no es cierto, también se pueden incrementar en -1.

De todas formas, no me parece tan ridículo. Los bucles FOR de casi cualquier lenguaje no son más que bucles WHILE optimizados (sobre todo en C). Si quieres incrementar por otro valor, tienes varias formas: hacer tu propio bucle WHILE o REPEAT (tampoco cuesta tanto), o multiplicar el valor contador por el incremento que necesites. Por ejemplo:
Código Delphi [-]
VAR
  Contador: INTEGER;
BEGIN
  Contador := 1;
  WHILE Contador < 21 DO
  BEGIN
    HacerAlgoCon (Contador);
    INC (Contador, 4)
  END;
{ Otra forma: }
  FOR Contador := 0 TO 4 DO
    HacerAlgoCon ((Contador * 4) + 1)
END.

Sí es verdad que a veces echo de menos los bucles de BASIC:
Código:
  DIM Contador AS INTEGER

  FOR Contador = 1 TO 20 STEP 4
    CALL HacerAlgoCon (Contador)
  NEXT Contador
Nota: La verdad es que no estoy seguro de que todos los bucles hagan lo mismo, pero se pilla la idea, ¿no?
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Calculo código BIC/SWIFT Miguel45 Varios 4 07-03-2014 14:11:58
Ahora Microsoft define un nuevo lenguaje, M# nlsgarcia Noticias 0 01-01-2014 23:19:27
Justo ahora: WWDC Apple mamcx La Taberna 3 12-06-2013 05:26:11
Justo ahora: WWDC 2011 - Lo nuevo de Apple mamcx Noticias 4 07-06-2011 19:20:21
FirebirdConfig ahora es OpenSource egostar Noticias 8 16-10-2008 23:17:38


La franja horaria es GMT +2. Ahora son las 01:58:52.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi