Go言語でキーイベント(termbox-goパッケージ)
今回はGo言語でキーイベントを捕まえる方法について書きます。
キーイベントは、termbox-goというパッケージを使います。残念ながら標準パッケージにはありません。
[ad#top-1]
まずはtermbox-goパッケージのインストール
termbox-goパッケージをインストールします。以下のコマンドでインストールしましょう。GOPATHが設定されていることが前提となります。
$ go get github.com/nsf/termbox-go
[GOPATH]/src/github.com/nsf の中にパッケージがインストールされているはずです。
ソースコード
こちらがソースコードになります。
package main import ( "fmt" "github.com/nsf/termbox-go" ) func main() { //termboxの初期化 err := termbox.Init() if err != nil { panic(err) } //プログラム終了時termboxを閉じる defer termbox.Close() for { switch ev := termbox.PollEvent(); ev.Type { case termbox.EventKey: switch ev.Key { case termbox.KeyEsc: //ESCキーで終了 fmt.Println("end") return case termbox.KeyArrowUp: //↑キー fmt.Println("Up") case termbox.KeyArrowDown: //↓キー fmt.Println("Down") case termbox.KeyArrowLeft: //←キー fmt.Println("Left") case termbox.KeyArrowRight: //→キー fmt.Println("Right") case termbox.KeySpace: //SPACEキー fmt.Println("Space") default: //その他のキー fmt.Println("other") } default: } } }
実行
矢印キーを押すとそれに応じたテキストが現れるようになっています。その他にも[SPACE]キーを押すと「Space」と表示されますし、それ以外のキーを押すと「other」と表示されます。[ESC]キーで終了します。
このパッケージを使えばちょっとしたコンソールアプリが作れますね。
[ad#ad-1]
スポンサーリンク