Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Noticias (https://www.clubdelphi.com/foros/forumdisplay.php?f=34)
-   -   Swift es ahora opensource (Siguiente generacion lenguaje Apple) (https://www.clubdelphi.com/foros/showthread.php?t=89509)

Al González 10-12-2015 19:03:41

Cita:

Empezado por AgustinOrtu (Mensaje 500291)
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? :confused:

Cita:

Empezado por AgustinOrtu (Mensaje 500291)
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.

roman 10-12-2015 19:33:47

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

Ñuño Martínez 10-12-2015 19:40:32

He estado echándole un vistazo al Swift ese, y es bien feo. no me gusta. Me parece muy confuso.

Cita:

Empezado por AgustinOrtu (Mensaje 500291)
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. :p

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?


La franja horaria es GMT +2. Ahora son las 19:11:43.

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