2018/04/30

ebitenのexamplesを動かしてgopherjsやgomobileを使ってみたよ

はじめに


公式のサンプル集から ebiten のBest practiceを学ぼうと思っていろいろ触ってみることにした。
まずは examplesのREADME を読むべし。

動かしてみる


gopherjs


gopherjs使ったことないので、とりあえずインストール。そして実行。

gopherjs serve --tags=example

ぐぬぬ、なんかエラーが。。(´・ω・`)

$ gopherjs.exe serve --tags=example
serving at http://localhost:8080 and on port 8080 of any available addresses
/src/syscall/syscall_nonlinux.go:5:18: undeclared name: SYS_EXIT
/src/syscall/syscall.go:53:39: too few arguments in call to Syscall
/src/syscall/syscall_nonlinux.go:5:18: undeclared name: SYS_EXIT
/src/syscall/syscall.go:53:39: too few arguments in call to Syscall
/src/syscall/syscall_nonlinux.go:5:18: undeclared name: SYS_EXIT
/src/syscall/syscall.go:53:39: too few arguments in call to Syscall

2018/04/24

golangで何か書き始める時によく使うスニペット

golangで何かザクッと作り始める時に、よく以下のスニペットを使っています。

package main
import (
"log"
"os"
)
const (
exitCodeOK int = iota
exitCodeFailed
)
func main() {
os.Exit(run(os.Args))
}
func run(args []string) int {
err := work()
if err != nil {
log.Println("Failed to execute the work:", err)
return exitCodeFailed
}
return exitCodeOK
}
func work() error {
return nil
}
view raw base.go hosted with ❤ by GitHub


os.Exit()は、deferを実行しないで処理を終了してしまいます。あっちこっちで使うと思わぬ事故の元。
これをmain関数内だけで使って諸々の処理はその引数であるrun関数内で行うことで、
deferが実行されない事故を防げます。

・・・というのは、書籍「みんなのGo言語」の4.5章の受け売りなんです。
他にも素晴らしい記事がたくさん載ってるので必読!٩( 'ω' )و