2 min read

Go μ–Έμ–΄ 기초 ν•™μŠ΅

Table of Contents

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 μ–Έμ–΄μ—μ„œ ν•¨μˆ˜μ˜ κ΅¬μ‘°λŠ” μ•„λž˜μ™€ κ°™μŠ΅λ‹ˆλ‹€.

Function sturcture in Golang

ν•΄λ‹Ή μ˜ˆμ œμ—μ„œ μ‚¬μš©λœ := 문법은 ν•œ μ€„λ§Œ μ‚¬μš©ν•˜μ—¬ λ³€μˆ˜λ₯Ό μ •μ˜ν•˜κΈ° μœ„ν•΄μ„œ μ‚¬μš©ν•©λ‹ˆλ‹€. λ§Œμ•½ ν•΄λ‹Ή 문법을 μ‚¬μš©ν•˜μ§€ μ•ŠλŠ”λ‹€λ©΄ μ•„λž˜μ™€ 같이 ν‘œν˜„ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

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