Golang 초보자의 일반적인 문제를 겨냥하여 이 기사에서는 명확한 해결책을 제공합니다. 구조를 정의하고 초기화합니다. type Person struct { Name string; Age int }; 사용 매핑: m: = make (map[string]int); m["Alice"] = 10 변수 개수의 매개변수 처리: func sumAll(...int) int 파일 읽기 및 쓰기: 파일 열기, 쓰기, 읽기 고루틴 생성 및 사용: go ConcurrentFunc (i)
Golang 초보자 질문 모음: 일반적인 문제를 해결하고 개선을 향해 나아갑니다
Golang 초보자로서 다양한 문제에 직면하기 쉽습니다. 이 기사는 가장 일반적인 불만 사항에 대한 명확하고 이해하기 쉬운 솔루션을 제공하여 초보자가 더 잘할 수 있도록 도와줄 것입니다.
1. 구조를 어떻게 정의하고 초기화하나요?
type Person struct { Name string Age int } p := Person{"John Doe", 30}
2. 지도를 사용하는 방법은 무엇인가요?
m := make(map[string]int) m["Alice"] = 10 m["Bob"] = 20 fmt.Println(m["Alice"]) // 输出: 10
3. 다양한 개수의 매개변수를 받는 방법은 무엇인가요?
func sumAll(numbers ...int) int { total := 0 for _, num := range numbers { total += num } return total } result := sumAll(1, 2, 3, 4, 5) // result = 15
4. 파일을 읽고 쓰는 방법은 무엇입니까?
f, err := os.Open("test.txt") if err != nil { panic(err) } defer f.Close() _, err = f.Write([]byte("Hello, world!")) if err != nil { panic(err) } b := make([]byte, 10) _, err = f.Read(b) if err != nil { panic(err) } fmt.Println(string(b)) // 输出: "Hello, wo"
5. 고루틴을 만들고 사용하는 방법은 무엇인가요?
func concurrentFunc(i int) { fmt.Println(i) } for i := 0; i < 5; i++ { go concurrentFunc(i) } // 同时输出 0、1、2、3、4
실용 사례
사용자가 작업을 관리할 수 있는 간단한 RESTful API를 만들고 싶다고 가정해 보겠습니다.
1. 작업 구조 정의:
type Task struct { ID int Name string Desc string }
2. 작업 컬렉션 생성:
tasks := make([]Task, 0)
3. 작업 생성 요청 처리:
func createTask(w http.ResponseWriter, r *http.Request) { var task Task if err := json.NewDecoder(r.Body).Decode(&task); err != nil { http.Error(w, "Invalid JSON", http.StatusBadRequest) return } tasks = append(tasks, task) fmt.Fprint(w, "Task created successfully") }
5 . HTTP 서버 시작:
func getTasks(w http.ResponseWriter, r *http.Request) { enc := json.NewEncoder(w) if err := enc.Encode(tasks); err != nil { http.Error(w, "Failed to encode tasks", http.StatusInternalServerError) return } }
위 내용은 Golang 초보자 질문 모음: 일반적인 문제를 해결하고 개선을 향해 나아갑니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!