Donggo
JavaScript 스타일의 함수들을 Go 언어에서 사용하세요. 함수형 프로그래밍과 유틸리티 함수들을 Go에서도 편리하게 사용할 수 있습니다.
코드 플레이그라운드
Donggo의 함수들을 직접 실행해보세요.
실행 결과
문서
Donggo의 모든 함수와 사용법을 확인하세요.
목차
Array Functions
JSON Functions
HTTP Client
Pipeline Functions
Array Functions
Contains[T any]
배열에 특정 값이 포함되어 있는지 검사합니다.
arr := []int{1, 2, 3, 4, 5}
result := Contains(arr, 3) // true
strArr := []string{"apple", "banana", "orange"}
result = Contains(strArr, "banana") // true
Object Functions
OKeys[T any]
객체의 키 목록을 반환합니다.
m := map[string]int{
"apple": 1,
"banana": 2,
"orange": 3,
}
keys := OKeys(m) // []string{"apple", "banana", "orange"}
OValues[T any]
객체의 값 목록을 반환합니다.
m := map[string]int{
"a": 1,
"b": 2,
"c": 3,
}
values := OValues(m) // []int{1, 2, 3}
OEntries[T any]
객체의 키-값 쌍을 반환합니다.
m := map[string]int{
"a": 1,
"b": 2,
}
entries := OEntries(m) // [][]any{{"a", 1}, {"b", 2}}
JSON Functions
JsonStringify[T any]
JavaScript의 JSON.stringify와 동일한 기능을 수행합니다. 객체를 JSON 문자열로 변환합니다.
data := map[string]interface{}{"name": "John", "age": 30}
jsonStr, err := JsonStringify(data)
// jsonStr: `{"name":"John","age":30}`
JsonParse[T any]
JavaScript의 JSON.parse와 동일한 기능을 수행합니다. JSON 문자열을 객체로 변환합니다.
jsonStr := `{"name":"John","age":30}`
var result map[string]interface{}
err := JsonParse(jsonStr, &result)
HTTP Client
Axios[T, Res any]
타입 안전한 HTTP 요청/응답을 처리합니다.
type User struct {
ID int `json:"id"`
Name string `json:"name"`
}
var user User
status, err := Axios[struct{}, User](
struct{}{},
WithURL("https://api.example.com/users/1"),
WithMethod("GET"),
)
Pipeline Functions
Pipe[T any]
기본 파이프라인 함수로, 데이터 변환을 선언적으로 작성할 수 있습니다.
result := Pipe("hello world",
strings.ToUpper,
func(s string) string { return strings.ReplaceAll(s, " ", "_") },
) // "HELLO_WORLD"
PipeWithError[T any]
에러 처리가 가능한 파이프라인입니다.
type User struct {
Name string
Age int
}
user, err := PipeWithError(User{Name: "홍길동", Age: 30},
func(u User) (User, error) {
if u.Age < 0 {
return u, fmt.Errorf("나이는 음수일 수 없습니다")
}
return u, nil
},
)
PipeWiths
타입 변환이 가능한 파이프라인입니다.
result := PipeWiths(42,
func(v any) any { return float64(v.(int)) * 1.5 },
func(v any) any { return fmt.Sprintf("결과: %.1f", v) },
) // "결과: 63.0"
설치 방법
1. Go 모듈 설치
go get github.com/zkfmapf123/donggo
2. 코드에서 import
import "github.com/zkfmapf123/donggo"