Skip to content

Instantly share code, notes, and snippets.

@yssk22
Last active December 17, 2015 00:39
Show Gist options
  • Save yssk22/5522848 to your computer and use it in GitHub Desktop.
Save yssk22/5522848 to your computer and use it in GitHub Desktop.
Golang あれこれ

コマンドライン引数

サンプル

  path := flag.String("config", "/etc/pt-client.conf", "path to configuration file")
  flag.Parse()

実行

$ ./a.out -config=/path/to/config.conf

設定ファイル

goconf パッケージ

$ go get github.com/dlintw/goconf

サンプル

  c, err := goconf.ReadConfigFile(*path)
  if( err != nil ){
    log.Println(err)
    return false
  }
  val , err = c.GetInt("section", "name")

設定ファイル例

[section]
name = 5

無限ループ

サンプル

  // 5秒ごとに Foo
  ticker := time.NewTicker(time.Duration(5) * time.Second);
  for {
    log.Println("Foo")
    <- ticker.C;
  }

シグナル

サンプル

func main(){
  sig := make(chan os.Signal)
  signal.Notify(sig, syscall.SIGINT)
  signal.Notify(sig, syscall.SIGTERM)

  s := <-sig
  log.Printf("Exited with %d", s)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment