...ing logging 4.0

はてなブログに移行しました。D言語の話とかいろいろ。

Full Closure (3)

import std.stdio;

int delegate()[string] createCounter(){
  int cur = 0;
  int delegate()[string] aa;
  aa["next"] = {return ++cur;};
  aa["prev"] = {return --cur;};
  return aa;
}

void main(){
  auto count = createCounter();
  writefln(count["next"]());//1
  writefln(count["next"]());//2
  writefln(count["prev"]());//1
  writefln(count["prev"]());//0
  writefln(count["prev"]());//-1
}

ええー,後置インクリメント/デクリメントを前置に変えたら狙い通りになった.
評価順どうなってんのこれw
全然わかんね.