You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
åã¨ãã¦ã¯Goã®ããããã®ãã¬ã¼ã ã¯ã¼ã¯ãèãããããæ¨æºã©ã¤ãã©ãªã®net/httpã¨çããããã«ãã¦ãã¾ããã¨ããããããGoã®ä»ã®ãã¬ã¼ã ã¯ã¼ã¯ã¨å¼ã°ãã¦ãããã®ã¯ããã®net/httpã®ã©ããã¼ã§ãããªãããã§ãã Goã§ã¢ããªã±ã¼ã·ã§ã³ãä½æããå ´åã®ã¤ã¡ã¼ã¸ã¯æ¬¡ã®éããbattery includedãªã¢ããã¼ãã¯ä»ã®è¨èªã§ããã¾ã«ããã¾ãããã¤ãã¦ããæ©è½ãä»æã®ãã®ãå¤ãã¦ãæ¨æºã©ã¤ãã©ãªã§æ¸ããã¨ãå¤ãã§ããã¦ã§ãéçºã«ã¤ãã¦ããããªæãã§ãã Pythonã¨ãRubyã¨ããããã§ãããè¨èªçµã¿è¾¼ã¿ã®ã¦ã§ããµã¼ãã¼æ©è½ã¯ãã¹ãç¨ã§æ¬çªéç¨ã«ã¯æ©è½ã足ããªããæ§è½ã足ããªããã¨ãããã¨ããããããã¯ã·ã§ã³ã«èããããã¬ã¼ã ã¯ã¼ã¯ãå¥ã«å ¥ããªãã¨ãã¨æã人ãå¤ãããããªãããªãã¨æãã¾ãããGoã®å ´åã¯çµã¿è¾¼ã¿ã®ãµã¼ãã¼ã§åé¡ãªãã£ãããã¾ããNode.jsã«è¿ãããï¼ ä¸é
1. ã¡ã«ã«ãªã»ã½ã¦ã¾ã¦ã§ã¯ ã©ãGoãæ´»ç¨ãã¦ããã®ãï¼ The Go gopher was designed by Renee French. The gopher stickers was made by Takuya Ueda. Licensed under the Creative Commons 3.0 Attributions license. 1 2017/07/22ï¼åï¼ @ä¼æ´¥å¤§Goåå¼·ä¼ 2. èªå·±ç´¹ä» ã¡ã«ã«ãªï¼ã½ã¦ã¾ã¦ ä¸ç°æä¹ twitter: @tenntenn â ã³ãã¥ããã£æ´»å Google Cloud Platform User Group (GCPUG) Tokyo Goãã®ãã¼ãº golang.tokyo Go Conference â æ¥å GAE/Goã§ã¡ã«ã«ãªã«ã¦ã«ãä½ã£ã¦ã¾ã GoãGCPã³ãã¥ããã£ãçãä¸ããä»äº Gopherãæãä»äº
go test ã®ãã£ãã·ã¥ãæ¶ãã®ã¯ç°¡å$ go clean -testcache 以ä¸ã§ãï¼ $ go test ./... ok github.com/oxequa/realize (cached) ok github.com/oxequa/realize/realize (cached) ãã®ããã« (cached) ã¨ãªã£ã¦ãããã®ãããã $ go clean -testcache $ go test ./... ok github.com/oxequa/realize 0.086s ok github.com/oxequa/realize/realize 0.389s ãã®ããã«ãå®è¡æéã表示ããã¦ããããã£ãã·ã¥ãæ¶ãã¦ãããã¨ãåããã¾ããã ã¡ãªã¿ã«ããã£ãã·ã¥ãç¡è¦ããæ¹æ³ã¯ããã²ã¨ã¤ããã 以ä¸ã®ããã« -count=1 ãã¤ãã¦ããã°OKã§ãã $ go tes
ã¯ããã« go1.11ããå°å ¥ãããmodulesã使ãã«ããã£ã¦ããã¾ãããåãã£ã¦ããªãã£ãã®ã§ ã¡ãã£ã¨éå»ããmodulesã«è³ãã¾ã§ã®åé¡ã詳細ãªåããªã©ã調ã¹ã¦ã¿ã¾ããã ãã®æã®åå¿é²ãæ®ãã¦ããã¾ãã ç解ããã ããªã®ã§ãæ å ±ãç¡ãé¨åã«ã¤ãã¦ã¯èªåã§èª¿ã¹ã¦ããã§ã«èª¿æ»æ¸ã¿ã®ç®æ㯠å¤ãã®å 人ãã¡ã®è¨äºãåèã«ããã¦ããã ãã¾ããããããã¨ããããã¾ãã ã©ã¤ãã©ãªã®ã¤ã³ã¹ãã¼ã«ãGo get go get https://github.com/...ã§$GOPATH/srcé ä¸ã«ã©ã¤ãã©ãªããã¦ã³ãã¼ãããäºã§ã importã§æå®ãã¦ã©ã¤ãã©ãªã使ç¨ããäºãåºæ¥ã¾ãã srcãpkgãbinã®è©³ç´°ã¯ä»¥ä¸ãåç § ããã°ã©ã ã®å ¨ä½æ§æ ä¸è¿°ã®æ§æããæ確ã«å¤æã§ããã®ã¯ãbinãã£ã¬ã¯ããªã®ä¸ã«ã³ã³ãã¤ã«å¾ã®å®è¡å¯è½ãã¡ã¤ã«ãä¿åãããpkgã®ä¸ã«é¢æ°ããã±ã¼ã¸ãä¿åããã
gistfile1.md ãã®gist㯠Cloud Foundry Advent Calendar 2013 ã®16æ¥ç®ã®è¨äºã§ãã ã¯ããã« ç¾å¨ãCloudFoundryã®Componentsã¯Goåãã¤ã¤ããã¾ããããã«ãããRubyã§å®è£ ããã¦ãããã®ã«å¯¾ãã¦æ§è½åä¸ãã¦ããããã½ã¼ã¹ãèªã¿ããããªã£ã¦ãããããï¼ãã¡ãã¯ä¸»è¦³ã§ããã»ã»ï¼åé¢ãéçºè ã«ã¨ã£ã¦ã®èª²é¡ãçã¾ãã¦ãã¾ãããã®èª²é¡ã®ã²ã¨ã¤ã__ä¾åããã±ã¼ã¸ç®¡ç__ã§ããã¾ãã¯Rubyã®å¤é¨ããã±ã¼ã¸ç®¡çã«ã¤ãã¦ç°¡åã«æ¯ãè¿ãã¤ã¤ãGoã®ãããè¦ã¦ãããã¨æãã¾ãã ä¾åããã±ã¼ã¸ç®¡çï¼Rubyï¼ Rubyã§ã¯å¤é¨ããã±ã¼ã¸ã¯Gemãã¡ã¤ã«ã¨ãªã£ã¦ããã大æµã®å ´åãBundlerã§ç®¡çãã¾ããã¾ããææ°çãåãã¨ã¯éããªãããè¨å®ãã¡ã¤ã«ã«ãã¼ã¸ã§ã³ãæå®ãã¦ããã使ç¨ãã¾ããGemãã¡ã¤ã«èªä½ã¯RubyGems.org
åé¡ deferã使ã£ã¦å¾å¦çããããå ´åã«ãããã»ã¹ãCtrl+cãªã©SIGINTã§ä¸æãããã¨deferãããã®ãçºç«ããªããããã»ã¹èªä½ãä¸æãããã®ã§ãããã¾ããªãã ãã©ãã åé¡ã®åç¾ package main import ( "fmt" "time" ) func main() { defer teardown() hoge() fmt.Println("çµäº") } func hoge() { for i := 0; i < 5; i++ { fmt.Println(i) time.Sleep(1 * time.Second) } } func teardown() { fmt.Println("ãã¼ã¿ã®ãã¨ããã¥ã") } ä¸è¨ã®å®è¡ % go run main.go 0 1 2 3 4 çµäº ãã¼ã¿ã®ãã¨ããã¥ã % SIGINTã®å ´å % go run main.go
Perlã ã¨callerã§å¼ã³åºãå ã®ã¢ã¸ã¥ã¼ã«åãã¡ã½ããåãåå¾ã§ããããGoã§ãã§ããã®ãï¼ ã¨æã£ã¦èª¿ã¹ã¦ã¿ãã ã³ã¼ã package main import ( "log" "runtime" ) type Hoge struct { name string } func (h *Hoge) Print() { Log(h.name) } func Log(data string) { pc, file, line, _ := runtime.Caller(1) f := runtime.FuncForPC(pc) log.Printf("\ncall:%s\ndata:%s\nfile:%s:%d\n", f.Name(), data, file, line) } func main() { h := &Hoge{ name: "hoge hoge", } h.Print()
Goã¨ããããã°ã©ãã³ã°è¨èªã®å¼·ã¿ã®ï¼ã¤ã¯ã Tony Hoareèæ¡ã®CSP ã«åºã¥ããã«ãã¤ã³ã®ä¸¦è¡æ§(Concurrency)ã§ããGoã¯ä¸¦è¡æ§ã念é ã«ãã¶ã¤ã³ããã¦ãããããè¤éã«ä¸¦è¡ãããã¤ãã©ã¤ã³ã®æ§ç¯ãå¯è½ã«ãã¦ãã¾ããã§ããããããã®ä¸¦è¡æ§ãã¿ã¼ã³ãã©ã®ããã«è¦ãããã®ãªã®ãæ°ã«ãªã£ããã¨ã¯ããã¾ãããã ãã¡ãããæ°ã«ãªã£ããã¨ã¯ããã¨æãã¾ããæããããããå½¢ã¯éã£ã¦ãã誰ããé ã«æãã¦ããã®ã§ã¯ãªãã§ããããããããã1ãã100ã¾ã§ã®æ°åãã«ã¤ãã¦èãããããç¡æèã«é ã®ä¸ã§æ°åã®ã¤ã¡ã¼ã¸ãæãæµ®ãã¹ãã¨æãã¾ããä¾ãã°ãç§ã®å ´åãèªåã®åãã1ãã20ã¾ã§ãã¾ã£ããã«ä¸¦ã³ã21以éã¯90度å³ã«æ²ãã1000以éã¾ã§ç¶ãã¤ã¡ã¼ã¸ãæµ®ãã³ã¾ããããã¯å¤åç§ãå¹¼ç¨åã®æã«æ室ã®å£ã«æ²¿ã£ã¦æ°åãè²¼ããã¦ãã¦ãã¡ããã©è§ã«æ°åã®20ããã£ããããªã®ã ã¨æãã¾ããå¥ã®ä¾ããã
æ£æã§æéããã£ãã®ã§ã以åãã触ã£ã¦ã¿ããã£ãgRPCãGoè¨èªãã使ãããã¼ã»ããªã¥ã¼ã»ã¹ãã¢ã®ãããªãã®ãä½ã£ã¦ã¿ãã KVSã¨ãã£ã¦ããGoã®mapã¸ã®Get/Put/Delete/ScanãgRPCçµç±ã§å©ããããã«ããã ãã®ãã®ãããã ãã ã¨ãã¾ãé¢ç½ãç¡ãã®ã§ãgRPCããããWatchæ©è½ãã¤ãã¦mapã¸ã®æ´æ°ãç£è¦ã§ããããã«ããã github.com å人çã«ã¯ãHTTP/1.1 + JSON APIã¨æ¯ã¹ãæã®gRPC(HTTP/2 + ProtoBuf)ã®ã¡ãªãããéããæ°ã«ãªã£ã¦ããã®ã§ããã®ããããæ°ãã¤ããªããæ¸ããã éçºã®æé ãµã¼ãã¹å®ç¾© ã¾ãã¯Protocol Buffers 3ã§KVSã®ãµã¼ãã¹ãå®ç¾©ããããµã³ãã«ãè¦ãªããé©å½ã«æ¸ããã grpc-kvs/grpc-kvs.proto at master · matope/grpc-kvs · G
5å¹´åã«è²·ã£ããJava並è¡å¦çããã°ã©ãã³ã° âãã®ãåºç¤ãã¨ãææ°APIãã究ããâããããããèªãã ãè²·ã£ãé ã«ã¯ Perl ãã·ã³ãã«ãª JavaScript ã°ããæ¸ãã¦ããã®ã§ä¸¦è¡ããã°ã©ãã³ã°ãªãã¦ã»ã¨ãã©æ°ã«ãããã¨ããªããå®æããªãã¦èªãã®ãéä¸ã§æ¢ã¾ã£ã¦ãã¾ã£ã¦ããæ¬ã§ã家ãæé¤ãã¦ããã¨ãã«è¦ã¤ãããã®ããã®å¾ã趣å³ã§ Android ã¢ããªãæ¸ããªã© Java ã«è§¦ããæ©ä¼ã¯ãã£ãããã©ãããããã AsyncTask ã使ããããã§ããã«ãã¹ã¬ãããå¼·ãæèãã¦ã³ã¼ããæ¸ããã¨ããªãã£ãã Java並è¡å¦çããã°ã©ãã³ã° âãã®ãåºç¤ãã¨ãææ°APIãã究ããâ ä½è : Brian Goetz,Joshua Bloch,Doug Leaåºç社/ã¡ã¼ã«ã¼: ã½ãããã³ã¯ã¯ãªã¨ã¤ãã£ãçºå£²æ¥: 2006/11/22ã¡ãã£ã¢: åè¡æ¬è³¼å ¥: 30人 ã¯ãªãã¯: 442å
8æã«æ£å¼ãªãªã¼ã¹ããã Go 1.13 ã®ä¸»ãªæ©è½ Go 1.13 ã®ãã¼ã¿çãç»å ´ããããã ã ãªãªã¼ã¹ãã¼ããä½µãã¦å ¬éããã¦ããã Go 1.13 Beta 1 is released - Google Group Go 1.13 Release Notes - The Go Programming Language Go 1.13 ã§ã¯æ°å¤ã®ãªãã©ã«è¡¨ç¾ï¼2é²æ°è¡¨ç¾ãæµ®åå°æ°ç¹æ°ã®16é²æ°è¡¨ç¾ï¼ãªã©è²ã ã¨éè¦ãªæ©è½è¿½å ããããï¼ä¸»ãªãã®ã¯ä»¥ä¸ã®éãã errors ããã±ã¼ã¸ã¸ã®æ©è½è¿½å 以åã«ç´¹ä»ãã golang.org/x/xerrors ã®æ©è½ãæ£å¼ã« errors ããã±ã¼ã¸ã«çµã¿è¾¼ã¾ããããã ã é層å Error ããã±ã¼ã¸ âxerrorsâ ã試ãã¦ã¿ã golang.org/x/xerrors ã®æ©è½ãã»ã¼è¸è¥²ãã¦ããã¿ãããªã®ã§ï¼æ¢ã« golang.org/
golang ã¨è¨ãã°éåæã«ç¹åããè¨èªã§ãããæ £ããªãå ã¯ç°¡åãªéåæãã使ãã¾ãããããã sync ããã±ã¼ã¸ãç¥ãäºã§ãã£ã¨ã«ã¸ã¥ã¢ã«ã«ããã¤ç¢ºå®ãªéåæå¦çãè¡ãäºãåºæ¥ãæ§ã«ãªãã¾ãã ä»æ¥ã¯ãã㪠sync ããã±ã¼ã¸ã«ã¤ãã¦èª¬æãã¦ã¿ããã¨æãã¾ãã sync.Mutex ãåã sync.Mutex ã§ããçãããä¸çªä½¿ãæä»å¶å¾¡ã ã¨æãã¾ãã package main import ( "fmt" "runtime" "sync" "time" ) func parallel(wg *sync.WaitGroup) { fmt.Println("å") time.Sleep(100 * time.Millisecond) fmt.Println("å¤") time.Sleep(100 * time.Millisecond) fmt.Println("ã®") time.
ãªãªã¼ã¹ãé害æ å ±ãªã©ã®ãµã¼ãã¹ã®ãç¥ãã
ææ°ã®äººæ°ã¨ã³ããªã¼ã®é ä¿¡
å¦çãå®è¡ä¸ã§ã
j次ã®ããã¯ãã¼ã¯
kåã®ããã¯ãã¼ã¯
lãã¨ã§èªã
eã³ã¡ã³ãä¸è¦§ãéã
oãã¼ã¸ãéã
{{#tags}}- {{label}}
{{/tags}}