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]
スポンサーリンク

