ããŒã ⺠ã³ã©ã ⺠Goã®å§ãæ¹ â æåã®ãããã€ããã¢ãžã¥ãŒã«ãšäžŠè¡åŠçãž 2026幎3æ11æ¥
æçµæŽæ°: 2026幎10æ9æ¥
Goã®å§ãæ¹ â æåã®ãããã€ããã¢ãžã¥ãŒã«ãšäžŠè¡åŠçãž ãããã€ãåãããŠãéä¿¡ã詊ã â ãŸãã¯1ã€ã®åŠç main.go go run 端æ«ã« ããã〠go buildãªã å®è¡ãã¡ã€ã«ãäœã â¡ ã¡ãã»ãŒãžã§åŸ
ã¡åãã goroutine ãããã€ãéã main åãåã£ãŠè¡šç€º channelã§éä¿¡ éåä¿¡ã§åŸ
ã¡åããã go runãå¿
èŠãªã³ã³ãã€ã«ãè¡ããŸããchannelã®äŸã¯äžŠè¡åŠçã®éä¿¡ãåŠã¶ãã®ã§ãéããä¿èšŒããå³ã§ã¯ãããŸããã ð é£æåºŠ â
ââ åå¿è
åã
â± åŠç¿æéã®ç®å® èªãã ã10åãHello World ãŸã§20å
ð åæç¥è ããã°ã©ãã³ã°ã®åºç€ç¥èïŒä»èšèªçµéšããããšçè§£ãæ©ãïŒ
â
ãã®ã¬ã€ãã§åŠã¹ãããš Goãå°å
¥ããŠçã確èªãã Go Modulesã§ãããžã§ã¯ããäœã go runãšgo buildã®éãã詊ã goroutineã®çµäºãchannelã§åŸ
〠ã²ãã Goã§å°ããªã³ãã³ããäœã£ãŠã¿ããïŒäœããå§ããã°ããïŒ
ãã³ã®ã³å
ç æåã¯ãããã«ã¡ã¯ããšè¡šç€ºãã
ããã°ã©ã ãäœãããGoã¯åãæã€èšèªã§ãCLIã
ãµãŒã㌠ãªã©ã«äœ¿ããããããŸãå
ŒΎ
åžã§Goãçšæããgo versionã§ç¢ºèªããŠãã
ã²ãã GOPATHã£ãŠèšå®ããªããšãããªãã®ïŒ
ãã³ã®ã³å
ç ä»åã®ããã«Go Modulesã§å§ãããªãããããžã§ã¯ãããšã«GOPATHãèšå®ããå¿
èŠã¯ãªãããäœæ¥
ãã©ã«ã ã§go mod init
example.com /helloãå®è¡ãããšã
ã¢ãžã¥ãŒã« ã®æ
å ±ãæã€go.modãã§ãããã ã
ã²ãã main.goã«ã¯äœãæžãã®ïŒ
ãã³ã®ã³å
ç package mainã¯å®è¡
ããã°ã©ã ã®ããã±ãŒãžãfunc main()ã¯å
¥å£ã ããfmtãimportããŠãfmt.Printlnã§ãããã€ã衚瀺ãããäžã®æåã®äŸã¯æšæº
ã©ã€ãã©ãª ã ãã§åããã
ã²ãã go runãšgo buildã¯ã©ãéãã®ïŒ
ãã³ã®ã³å
ç go runã¯å¿
èŠãª
ã³ã³ãã€ã« ãè¡ã£ãŠããã®å Žã§å®è¡ããã³ãã³ãã ããgo buildã¯å®è¡ãã¡ã€ã«ãäœããã§ãããã¡ã€ã«ã¯å¯Ÿè±¡ã®OSã»
CPU ãªã©ã«åãç°å¢ã§åãããã®ã§ãã©ã®PCã§ãåãäžã€ãåãããã§ã¯ãªããã ã
ã²ãã ãã³ã®ã³å
ç 颿°ã®äžã§äœ¿ããçã倿°å®£èšã ããname := "ã²ãã"ãªããåæå€ããstringåã«ãªããåãæåã§æžããªããŠããåããªããªãããã§ã¯ãªããã ãGoã§ã¯æªäœ¿çšã®ããŒã«ã«å€æ°ãimportãªã©ããšã©ãŒã«ãªãã®ã§ãæåã®ã¡ãã»ãŒãžãèªããã
ã²ãã ãã³ã®ã³å
ç 颿°åŒã³åºãã®åã«goãä»ãããšãå¥ã®goroutineã§åãå§ãããããã ãmainãæ»ãã°
ããã°ã©ã ã¯çµãããä»äºã®å®äºãåŸ
ã€æ¹æ³ãããšã©ãŒã»ãã£ã³ã»ã«ã®æ±ããå¿
èŠã ããããã€ã§ãç¡æ¡ä»¶ã«å¢ãããŠããããšããæå³ã§ã¯ãªããã ã
ã²ãã ã¡ãããšçµãããŸã§åŸ
ã€ã«ã¯ïŒ
ãã³ã®ã³å
ç ä»åã®äºã€ç®ã®äŸã§ã¯channelã䜿ãããgoroutineããããã€ãéã£ãŠãmainãåä¿¡ããŠè¡šç€ºããããã®åä¿¡ã§åŸ
ã¡åããããã ãåŸ
ã€ããã«é©åœãªç§æ°ã®Sleepãå
¥ãããããå®äºã®æ¡ä»¶ã衚çŸãããããã
ã²ãã ãã³ã®ã³å
ç ã§ãããããŸã颿°ãšãšã©ãŒã®æ±ããåŠã³ããã®åŸã«æšæºã®net/httpãžé²ãããæ§é äœãš
ã€ã³ã¿ãŒãã§ãŒã¹ ããã¹ããå°ããã€è©Šãããå
¬åŒã®A Tour of Goã«ã¯
ãã©ãŠã¶ ã§åãããç·Žç¿ããããã
æåã®ãŽãŒã«ïŒgo runã§ãããã€ã衚瀺ãã
Goå
¬åŒã®å°å
¥æé ã§ãOSãšCPUã«åãé
åžç©ãéžã³ãŸããå°å
¥åŸã¯æ°ããã¿ãŒããã«ã§ç¢ºèªããŸãããã
go version
mkdir hello-go
cd hello-go
go mod init example.com/hello
example.com/hello ã¯ãã®ç·Žç¿çšã®ã¢ãžã¥ãŒã«åã§ããããã§Webãµã€ããå
¬éããããã§ã¯ãããŸããã
1. main.goãäœã£ãŠå®è¡ãã
package main
import " fmt "
func main () {
name := "ã²ãã"
fmt. Println ( "ããã«ã¡ã¯ã" + name + "ããïŒ" )
}
go fmt ./...
go run .
ããã«ã¡ã¯ãã²ããããïŒ ãšåºãã°æåã§ããgo fmt ã¯Goã®æŽåœ¢ãé©çšããŸããæ¬¡ã«å®è¡ãã¡ã€ã«ãäœããŸãã
Windows PowerShell:
go build - o hello.exe .
.\ hello.exe
macOS/Linux:
go build -o hello .
./hello
åããããã€ãåºãããšã確èªããŸããé
åžæã¯å¯Ÿè±¡OSã»CPUãcgoãå€éšã©ã€ãã©ãªãå¿
èŠãªããŒã¿ãã¡ã€ã«ãªã©ã®æ¡ä»¶ã確èªããŸããåžžã«ãã¡ã€ã«äžã€ã ãã§ã©ãã§ãåãããšããä¿èšŒã§ã¯ãããŸããã
次ã®äžæ©ïŒchannelã§ãããã€ãåãåã
å
ã»ã©ã®main.goã以äžãžçœ®ãæããä¿åã㊠go run . ãå®è¡ããŸãã
package main
import " fmt "
func main () {
messages := make ( chan string )
go func () {
messages <- "goroutineãããããã«ã¡ã¯ïŒ"
}()
message := <- messages
fmt. Println (message)
}
åä¿¡ãåŸ
ã¡åããã«ãªããã¡ãã»ãŒãžãæ¥ãŠãã衚瀺ãããŸãããã®äŸã¯äžŠè¡åŠçã®éä¿¡ã詊ããã®ã§ãé床ã®åäžã枬ããã®ã§ã¯ãããŸãããéä¿¡ãåä¿¡ããªããŸãŸåŸ
ã€ããã«æžãæãããšã忢ããŠé²ããªããªãããšããããŸãã
åãæ§é äœãžé²ããªãA Tour of Go ã䜿ãåããæŽçãããªãRustãšGoã®æ¯èŒ ãžãä»åã®Go Modulesã§ã¯ãæäœæ¥ã§GOPATHé
äžãžçœ®ãæ¹æ³ãåæã«ããŸããã
åèè³æ