>  기사  >  백엔드 개발  >  매핑할 골랭 배열

매핑할 골랭 배열

WBOY
WBOY원래의
2023-05-15 09:32:061091검색

Go 언어에서는 배열을 맵 유형으로 변환해야 하는 경우가 있습니다. 이 글에서는 이 기능을 구현하는 방법을 소개합니다.

배열은 특정 순서로 배열된 데이터 유형의 집합이고, 맵은 키-값 쌍의 형태로 저장된 데이터 유형입니다. 배열은 아래 첨자를 사용하여 요소에 액세스할 수 있는 반면, 맵은 값에 액세스하려면 키가 필요합니다. 일부 시나리오에서는 요소에 더 편리하게 액세스하기 위해 배열을 맵 유형으로 변환해야 합니다.

예를 들어, 5명의 학생의 이름과 해당 성적을 저장하는 길이가 5인 배열이 있습니다. 학생 이름을 기준으로 해당 성적을 빠르게 찾을 수 있도록 지도 형태로 변환해 드리고자 합니다.

먼저 학생의 이름과 성적을 저장할 유형을 정의해야 합니다.

type Student struct {
    Name  string
    Score int
}

그런 다음 5명의 학생의 이름과 성적을 저장하기 위해 길이가 5인 배열을 만듭니다.

students := [5]Student{
    {Name: "张三", Score: 90},
    {Name: "李四", Score: 85},
    {Name: "王五", Score: 78},
    {Name: "赵六", Score: 92},
    {Name: "钱七", Score: 88},
}

그런 다음 지도를 정의합니다. 유형, 학생 이름을 키로 사용하고 학생 성적을 값으로 사용:

scores := make(map[string]int)

다음으로 배열의 각 요소를 반복하고 학생 이름을 키로 사용하고 학생 성적을 값으로 점수에 저장합니다.

for _, student := range students {
    scores[student.Name] = student.Score
}

마지막으로 점수에서 학생 이름에 해당하는 등급을 찾을 수 있습니다.

score, ok := scores["张三"]
if ok {
    fmt.Printf("张三的成绩为:%d
", score)
} else {
    fmt.Println("未找到张三的成绩")
}

완전한 코드는 다음과 같습니다.

package main

import "fmt"

type Student struct {
    Name  string
    Score int
}

func main() {
    students := [5]Student{
        {Name: "张三", Score: 90},
        {Name: "李四", Score: 85},
        {Name: "王五", Score: 78},
        {Name: "赵六", Score: 92},
        {Name: "钱七", Score: 88},
    }

    scores := make(map[string]int)
    for _, student := range students {
        scores[student.Name] = student.Score
    }

    score, ok := scores["张三"]
    if ok {
        fmt.Printf("张三的成绩为:%d
", score)
    } else {
        fmt.Println("未找到张三的成绩")
    }
}

출력 결과는 다음과 같습니다.

张三的成绩为:90

위의 코드 예를 통해 우리는 지도에 배열하는 것은 매우 간단합니다. 키-값 쌍 유형을 정의하고, 맵 객체를 생성하고, 배열을 순회하고, 맵에 요소를 채우기만 하면 됩니다.

요약:

  • Go 언어에서는 배열을 탐색하여 지도 유형으로 변환할 수 있습니다.
  • 변환 과정에서 키-값 쌍 유형과 맵 객체를 정의해야 합니다.
  • 변환 후 키를 기준으로 해당 값을 빠르게 찾을 수 있습니다.

위 내용은 매핑할 골랭 배열의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.