Hello World
go mod init example/helloμ κ°μ΄ μνλ κ²½λ‘λ₯Ό μ
λ ₯νμ¬ νΉμ ν΄λλ₯Ό Initialνκ³ μλμ κ°μ΄ hello.go νμΌμ μμ±ν©λλ€.
package main
import "fmt"
func main() {
fmt.Println("Hello World")
}
go run .μ ν΅ν΄μ main() ν¨μλ₯Ό μ€νν μ μμ΅λλ€.
μΈλΆ ν¨ν€μ§ νΈμΆ
package main
import "fmt"
import "rsc.io/quote"
func main() {
fmt.Println(quote.Go()) // Output: Don't communicate by sharing memory, share memory by communicating.
}
μμ "rsc.io/quote"μ κ°μ΄ import νκΈ° μν΄μ , go mod tidyλ₯Ό ν΅ν΄μ λΌμ΄λΈλ¬λ¦¬λ₯Ό λΆλ¬μ€λ κ³Όμ μ΄ νμν©λλ€.
ν΄λΉ λͺ
λ Ήμ΄λ‘ λΌμ΄λΈλ¬λ¦¬λ₯Ό λΆλ¬μ¨ μ΄νμλ go run .μ ν΅ν΄μ μ€νν μ μμ΅λλ€.
ν¨μμ ꡬ쑰
package main
import "fmt"
func greet(name string) string {
message := fmt.Sprintf("Hi, %v. Welcome!", name)
return message
}
Go μΈμ΄μμ ν¨μμ ꡬ쑰λ μλμ κ°μ΅λλ€.

ν΄λΉ μμ μμ μ¬μ©λ := λ¬Έλ²μ ν μ€λ§ μ¬μ©νμ¬ λ³μλ₯Ό μ μνκΈ° μν΄μ μ¬μ©ν©λλ€.
λ§μ½ ν΄λΉ λ¬Έλ²μ μ¬μ©νμ§ μλλ€λ©΄ μλμ κ°μ΄ ννν μ μμ΅λλ€.
var message string
message = fmt.Sprintf("Hi, %v. Welcome!", name)
μ΄λ² μμ μμ fmt ν¨ν€μ§μ ν¬ν¨λ Sprintf ν¨μμμ 첫λ²μ§Έ μΈμλ Format String,
κ·Έ λ€μ μΈμλΆν°λ Format String λ΄μ %vμ λ€μ΄κ° κ°μ μ§μ ν λ μ¬μ©ν©λλ€.
λ©ν° λͺ¨λ
μ΄λ² μ±ν°μμλ μν¬μ€νμ΄μ€ νμμ λͺ¨λμ ꡬμ±νλ λ°©λ²μ μμλ³΄κ² μ΅λλ€.
μλμ κ°μ΄ μν¬μ€νμ΄μ€ ν΄λ νμμ λͺ¨λμ μμ±ν©λλ€.
mkdir workspace
cd workspace
mkdir car
cd car
go mod init example.com/car
nvim car.go
μλμ κ°μ΄ car λͺ¨λ λ΄μ μ½λλ₯Ό μμ±ν©λλ€.
package main
import (
"fmt"
)
func main() {
fmt.Println("Hello Car!")
}
κ·Έλ¦¬κ³ λ€μ workspace ν΄λλ‘ λμ΄κ°μ go work init ./carλ₯Ό μ€ννκ² λλ©΄ μν¬μ€νμ΄μ€μμ car λͺ¨λμ λν λ‘λ©μ΄ μλ£λμμ΅λλ€.
μμ±λ go.work νμΌμμ μ°κ²°λ λͺ¨λ λͺ©λ‘μ νμΈν μ μμΌλ©°, μλμ κ°μ΄ λͺ¨λμ νΈμΆν μ μμ΅λλ€.
go run ./car