Programing/Go
[GoLang] 다양한 작업을 위한 10가지 일반적인 Go(Golang) 코드 조각
멍멍돌이야
2024. 6. 10. 08:39
반응형
코드 조각의 유용성은 해결하려는 특정 문제에 따라 달라지기 때문에 "상위 10개" Go(Golang) 코드 조각의 명확한 목록을 제공하는 것은 어렵습니다. 그러나 다양한 작업과 개념을 다루는 일반적으로 사용되는 10가지 Go 코드 조각을 제공할 수 있습니다.
1. Hello World:
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
2. Reading Input from Console:
package main
import (
"fmt"
"bufio"
"os"
)
func main() {
scanner := bufio.NewScanner(os.Stdin)
fmt.Print("Enter text: ")
scanner.Scan()
input := scanner.Text()
fmt.Println("You entered:", input)
}
3. Creating a Goroutine:
package main
import (
"fmt"
"time"
)
func printNumbers() {
for i := 1; i <= 5; i++ {
fmt.Println(i)
time.Sleep(time.Second)
}
}
func main() {
go printNumbers()
time.Sleep(3 * time.Second)
}
4. Working with Slices:
package main
import "fmt"
func main() {
numbers := []int{1, 2, 3, 4, 5}
fmt.Println("Slice:", numbers)
fmt.Println("Length:", len(numbers))
fmt.Println("First Element:", numbers[0])
}
5. Error Handling:
package main
import (
"errors"
"fmt"
)
func divide(a, b float64) (float64, error) {
if b == 0 {
return 0, errors.New("division by zero")
}
return a / b, nil
}
func main() {
result, err := divide(10, 2)
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Println("Result:", result)
}
6. HTTP Server:
package main
import (
"fmt"
"net/http"
)
func handler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintln(w, "Hello, HTTP!")
}
func main() {
http.HandleFunc("/", handler)
http.ListenAndServe(":8080", nil)
}
7. JSON Marshalling and Unmarshalling:
package main
import (
"fmt"
"encoding/json"
)
type Person struct {
Name string `json:"name"`
Age int `json:"age"`
}
func main() {
jsonStr := `{"name":"Alice", "age":30}`
var person Person
err := json.Unmarshal([]byte(jsonStr), &person)
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Println("Name:", person.Name)
fmt.Println("Age:", person.Age)
}
8. Concurrency with Wait Groups:
package main
import (
"fmt"
"sync"
)
func worker(id int, wg *sync.WaitGroup) {
defer wg.Done()
fmt.Printf("Worker %d started\n", id)
}
func main() {
var wg sync.WaitGroup
for i := 1; i <= 5; i++ {
wg.Add(1)
go worker(i, &wg)
}
wg.Wait()
fmt.Println("All workers have finished.")
}
9. Reading and Writing Files:
package main
import (
"fmt"
"io/ioutil"
)
func main() {
data := []byte("Hello, File!")
err := ioutil.WriteFile("example.txt", data, 0644)
if err != nil {
fmt.Println("Error:", err)
return
}
content, err := ioutil.ReadFile("example.txt")
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Println("File Content:", string(content))
}
10. Sorting Slices:
package main
import (
"fmt"
"sort"
)
func main() {
numbers := []int{5, 2, 9, 1, 5}
sort.Ints(numbers)
fmt.Println("Sorted Slice:", numbers)
}
이러한 코드 조각은 기본 I/O 작업부터 동시성, 오류 처리 등에 이르기까지 다양한 일반적인 Go 프로그래밍 작업과 개념을 다룹니다. Go 프로젝트에서 필요에 따라 자유롭게 조정하고 사용하세요.
출처: https://golang.withcodeexample.com/blog/go-code-snippets-for-common-tasks/
728x90
반응형