Safe copy-paste using mixin

cym13 via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Mon Aug 31 04:36:18 PDT 2015


On Monday, 31 August 2015 at 11:06:40 UTC, drug wrote:
> On 31.08.2015 13:57, Andrea Fontana wrote:
>>
>> Just create a function that return a string with those three 
>> lines and
>> mixin it!
>>
>> Like:
>>
>> import std.stdio;
>>
>> string toMix( string a, string b, string c)
>> {
>>      return `string a = "` ~ a ~ `";` ~ `string b = "` ~ b ~ 
>> `";`
>> `string c = "` ~ c ~ `";`;
>> }
>>
>>
>> void main()
>> {
>>
>>      {
>>          mixin(toMix("hello", " world", " 1"));
>>          writeln(a,b,c);
>>      }
>>
>>      {
>>          mixin(toMix("hello", " world", " 2"));
>>          writeln(a,b,c);
>>      }
>> }
> As usual in D the answer is simple.)
>
> But sometimes string mixins aren't desired, it would be nice to 
> mixin the code, not strings.

That's what template mixins are for (although in your example 
string mixins are better suited imho). You may want to have a 
look at 
https://blog.dicebot.lv/posts/2015/08/OOP_composition_with_mixins 
or of course http://dlang.org/template-mixin.html


More information about the Digitalmars-d-learn mailing list