Am 02.02.2016 10:41 schrieb "Serguei TARASSOV" <se...@arbinada.com>:
>
> On 02/02/2016 10:29, fpc-pascal-requ...@lists.freepascal.org wrote:
>>
>> 2016-02-01 10:59 GMT+01:00 Michael Schnell<mschn...@lumino.de>:
>> Same here. I see no reason to differ from it. Introducing new
>> incompatibility is bad idea. For me is good to have booth (Oxygene
>> compatible):
>>
>> x := iif (a < 3, 1, 2);
>> V := If a < 3 then 1 else 2;
>>
>> sometimes is better to use first option and sometimes is better to use
>> second option. Both Oxygen compatible and very "pascalish".
>
> No, the second is always better because safer.
>
> x := iif (Obj = nil, 0, Obj.Value);
> This will raise access violation as a normal function or you depend on
compiler implementation for this special case. And you should remember an
additional special case of function.

That's why the current IfThen() is an intrinsic, to allow this.

> x := iif Obj = nil then 0 else Obj.Value;
> Doesn't raise AV because it's a statement, not function.

It's not a statement, it's an expression. Also I won't introduce a new
keyword ("iif") just for this.

Regards,
Sven
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to