Cita:
Empezado por roman
En lo particular, esa característica (que la asignación sea un operador) casi sólo la uso para ciclos en los que obtengo y uso un dato:
Código:
/*
DameRegistro devuelve el siguiente registro o FALSE si no hay más registros
*/
WHILE registro = DameOtro() DO
BEGIN
MuestraRegistro(registro)
END
|
Buen uso.
Hoy estuve trabajando con cierto método que quizá sirva de ejemplo:
Código Delphi
[-] Function TuaByNodeIdDic <T>.TryGetValue (Const AKey :TuaDNodeId;
Out AValue :T) :Boolean;
Var
LTried :Boolean;
Begin
LTried := System.False;
Result := System.False;
If AKey.IndexableByID Then
Begin
Result := TryGetValue (AKey.BinEncodedID, AValue); LTried := System.True;
End;
End;
Con "asignaciones expresivas" (por llamarles de algún modo) esa primera parte se reduciría un poco:
Código Delphi
[-] Function TuaByNodeIdDic <T>.TryGetValue (Const AKey :TuaDNodeId;
Out AValue :T) :Boolean;
Var
LTried :Boolean;
Begin
If Result := LTried := AKey.IndexableByID Then
Result := TryGetValue (AKey.BinEncodedID, AValue);
End;
Saludos.