2009/11/13 金曜日

Google GOでクロージャ

カテゴリー: 未分類 — ryu @ 23:07:54

ま、やってるでしょうってことで。

package main

import "fmt"

func getCounter() (func() int) {

var value int;
value = 0;

return func() int { value = value + 1; return value;};
}

func main() {

var f func() int;

f = getCounter();

fmt.Printf("hello, world %d\n", f() );
fmt.Printf("hello, world %d\n", f() );
fmt.Printf("hello, world %d\n", f() );
fmt.Printf("hello, world %d\n", f() );
fmt.Printf("hello, world %d\n", f() );
fmt.Printf("hello, world %d\n", f() );

}

スクリプト言語触っててCで出来れば・・・と思ってたことが出来る感じ。

とりあえず、最近中島さんのところでよく出るクロージャw
Python Hack : 噛めば噛むほどおいしくなるクロージャの話

実行環境が必要ないってことでバイナリ生成は有利なんだけど、
Cとかしか無かったし、
GCJとかだととっても巨大なバイナリに成ってたことを考えるといい感じ。

とはいえ、Cで生成したオブジェクトよりかは大きいんだけど。

# ほとんどの人は6gじゃなくて8gなので注意をw

1,554 件のコメント

コメントはまだありません。

このコメント欄の RSS フィード トラックバック URL

コメントフォームは現在閉鎖中です。

37 queries. HTML convert time: 0.242 sec. Powered by WordPress 2.8