[go] 구조체(struct)를 배열과 함께 사용하는 방법

구조체(struct)는 서로 다른 데이터를 하나로 묶어 관리하기 위한 자료형입니다. 배열은 동일한 데이터 타입을 여러 개 저장하기 위한 자료구조입니다. 이번 글에서는 구조체를 배열과 함께 사용하는 방법에 대해 알아보겠습니다.

구조체 선언하기

먼저, 구조체를 선언해 보겠습니다. 예를 들어, 학생의 정보를 저장하는 구조체를 선언해 보겠습니다.

type Student struct {
    name  string
    grade int
}

위의 코드에서 Student라는 구조체는 namegrade라는 두 개의 필드를 갖습니다. name은 문자열(string) 타입이고, grade는 정수(int) 타입입니다.

구조체 배열 선언하기

구조체 배열을 선언하려면, 구조체 타입을 원하는 개수만큼 배열로 선언해야 합니다. 예를 들어, Student 구조체의 배열을 선언해보겠습니다.

var students [3]Student

위의 코드에서 studentsStudent 구조체의 배열로, 3명의 학생을 저장할 수 있는 배열입니다.

구조체 배열 초기화하기

구조체 배열을 사용하기 전에 초기화해야 합니다. 배열 요소에 접근하여 필드 값을 설정할 수 있습니다. 예를 들어, 첫 번째 학생의 정보를 초기화해보겠습니다.

students[0].name = "John"
students[0].grade = 90

위의 코드에서 students[0]은 첫 번째 학생을 의미하며, name 필드와 grade 필드 값을 각각 “John”과 90으로 설정합니다.

구조체 배열 사용하기

구조체 배열을 사용하여 데이터를 처리할 수 있습니다. 예를 들어, 모든 학생의 이름과 성적을 출력하는 함수를 작성해보겠습니다.

func printStudents(students [3]Student) {
    for i, student := range students {
        fmt.Printf("Student %d - Name: %s, Grade: %d\n", i+1, student.name, student.grade)
    }
}

위의 함수는 students 배열을 매개변수로 받아서 배열 요소의 필드 값을 출력합니다. range 키워드를 사용하여 배열의 인덱스와 요소를 순회합니다.

예제 실행하기

위에서 작성한 함수와 구조체 배열을 사용하는 예제를 실행해보겠습니다.

func main() {
    students[1].name = "Jane"
    students[1].grade = 85

    students[2].name = "Mike"
    students[2].grade = 92

    printStudents(students)
}

위의 main 함수에서는 두 번째와 세 번째 학생의 정보를 초기화하고, printStudents 함수를 호출하여 모든 학생의 정보를 출력합니다. 실행 결과는 다음과 같습니다.

Student 1 - Name: John, Grade: 90
Student 2 - Name: Jane, Grade: 85
Student 3 - Name: Mike, Grade: 92

이처럼 구조체를 배열과 함께 사용하여 데이터를 관리하고 처리할 수 있습니다.

결론

구조체를 배열과 함께 사용하는 방법에 대해 알아보았습니다. 구조체 배열을 사용하면 여러 개의 데이터를 효율적으로 관리할 수 있고, 필요한 작업을 수행할 수 있습니다. 구조체 배열을 선언하고 초기화하는 방법을 익히고, 배열 요소에 접근하여 필드 값을 설정할 수 있는 방법을 기억해두세요.