How can I do lazy variable initialization?

Ali Çehreli acehreli at yahoo.com
Sat Jan 9 20:39:26 UTC 2021


On 1/9/21 12:35 PM, Ali Çehreli wrote:

 > alias lightLoadOperation = memoize!heavyLoadOperation;
 >
 >    const l = lightLoadOperation();

Well, that doesn't work the way you want but this does:

   if (args.length == 1) {
     writefln!"Using lazy variable: %s %s"(lightLoadOperation(), 
lightLoadOperation());
   }

No matter how many times you call lightLoadOperation, it will be called 
just once (which can be configured with maxSize):

   https://dlang.org/library/std/functional/memoize.html

Ali




More information about the Digitalmars-d-learn mailing list