<p>Am 22.08.2017 13:15 schrieb "Michael Van Canneyt" <<a href="mailto:michael@freepascal.org">michael@freepascal.org</a>>:<br>
><br>
><br>
><br>
> On Tue, 22 Aug 2017, Thaddy de Koning wrote:<br>
><br>
>>> On 21.08.2017 13:22, Michael Van Canneyt wrote:<br>
>>>><br>
>>>><br>
>>>><br>
>>>> On Mon, 21 Aug 2017, Benito van der Zander wrote:<br>
>>>><br>
>>>>> Hi,<br>
>>>>><br>
>>>>>> This pattern is not inherently efficient. Why should it be ?<br>
>>>>><br>
>>>>><br>
>>>>><br>
>>>>> It is not efficient, because of the pointless instruction!<br>
>>>><br>
>>>><br>
>>>> I am not speaking of the current FPC implementation. It may well be that<br>
>>>> the<br>
>>>> code is not most optimal.<br>
>>>><br>
>>>> I am asking, why do you think *this pattern* (of always returning self)<br>
>>>> should be inherently more efficient ?<br>
>>><br>
>>><br>
>>> The pattern definitely has its uses. E.g. in the user space of our<br>
>>> operating system at work we have a StdOutPrinter class that is used like<br>
>>> this:<br>
>>><br>
>>> === code begin ===<br>
>>><br>
>>> StdIO::stdOutPrinter()->out("Helllo World ")->out(42)->out("<br>
>>> ")->hex()->out(42)->line();<br>
><br>
><br>
> Call me old-fashioned, but I much prefer<br>
><br>
>   With StdIO::stdOutPrinter() do<br>
>     begin<br>
>     out("Helllo World ");<br>
>     out(42);<br>
>     out("");<br>
>     hex();<br>
>     out(42);<br>
>     line();<br>
>     end;<br>
><br>
> I see no point or gain in the "fluent" code.</p>
<p>First C++ has no with-statement and second I definitely prefer my output to be on one line. :)<br>
Also in other cases fluent interfaces are rather nice to have.<br>
Though they also don't force you to be used in that way :) (at least if they really only return Self/This).</p>
<p>Regards,<br>
Sven</p>