Skip to content

Instantly share code, notes, and snippets.

View syossan27's full-sized avatar
💭
🤔

syossan27 syossan27

💭
🤔
View GitHub Profile
// SIGINTとSIGTERMをキャッチする
t := tebata.New(syscall.SIGINT, syscall.SIGTERM)
func main() {
// シグナルを受け取るまで待ち受けるためのChannel
doneCh := make(chan struct{}
// シグナルを受け取るChannel
signalCh := make(chan os.Signal, 1)
signal.Notify(signalCh, os.Interrupt)
// メッセージを受け取る処理をgoroutineで動かす
go receive(signalCh, doneCh)
package main
import (
"fmt"
"unsafe"
)
func main() {
errorCh := make(chan error)
fmt.Printf("%d", unsafe.Sizeof(errorCh))

Introduction to Go 1.10

最新のGoリリース、バージョン1.10は、Go 1.9から6ヶ月後に届きます。
その変更のほとんどは、ツールチェーン、ランタイム、およびライブラリの実装にあります。 いつものように、リリースはGo 1の互換性を約束しています。
ほとんどすべてのGoプログラムは以前と同じようにコンパイルと実行を続けます。

このリリースでは、ビルドされたパッケージのキャッシュを改善し、テスト結果のキャッシュを追加し、テスト中に自動的にvetを実行し、
cgoを使用してGoとCの間で文字列値を直接渡すことができます。
新しいコンパイラオプションホワイトリストは、古いリリースで正常に構築されたコードで予期しない無効なフラグエラーを引き起こす可能性があります。

Changes to the language

sigc := make(chan os.Signal, 1)
signal.Notify(sigc, os.Interrupt, syscall.SIGTERM)
go func(ln net.Listener, c chan os.Signal) {
sig := <-c
log.Printf("Caught signal %s: shutting down.", sig)
ln.Close()
os.Exit(0)
}(ln, sigc)
package main
import (
"log"
"net"
"os"
)
func main() {
f := "/tmp/connection.sock"
@syossan27
syossan27 / gist:cd6993f1050d4d9f2e25723d52a0ebd7
Created January 22, 2018 04:52 — forked from okohs/whitelist.md
20180122_定時前に帰宅できた企業
## 書き方
該当する各社の対応欄に企業名を書いてください。備考があれば適宜カッコ書きしてください。
## 出勤していない(終日在宅勤務含む)
-
## 早めに退勤できた
- 株式会社アイスタイル
$ ./structure-test-darwin-amd64 -test.v --image golang go_test.yaml
Using driver docker
=== RUN TestAll
2018/01/19 18:49:34 Running tests for file go_test.yaml
=== RUN TestAll/Command_Test:_go_test
=== RUN TestAll/Metadata_Test
--- PASS: TestAll (0.94s)
--- PASS: TestAll/Command_Test:_go_test (0.94s)
docker_driver.go:74: stdout: /usr/local/go/bin/go
--- PASS: TestAll/Metadata_Test (0.00s)
schemaVersion: '2.0.0'
commandTests:
- name: "go test"
command: "which"
args: ["go"]
expectedOutput: "/usr/local/go/bin/go"
$ docker pull golang