구조체(struct)는 서로 다른 데이터를 하나로 묶어 관리하기 위한 자료형입니다. 배열은 동일한 데이터 타입을 여러 개 저장하기 위한 자료구조입니다. 이번 글에서는 구조체를 배열과 함께 사용하는 방법에 대해 알아보겠습니다.
구조체 선언하기
먼저, 구조체를 선언해 보겠습니다. 예를 들어, 학생의 정보를 저장하는 구조체를 선언해 보겠습니다.
type Student struct {
name string
grade int
}
위의 코드에서 Student
라는 구조체는 name
과 grade
라는 두 개의 필드를 갖습니다. name
은 문자열(string) 타입이고, grade
는 정수(int) 타입입니다.
구조체 배열 선언하기
구조체 배열을 선언하려면, 구조체 타입을 원하는 개수만큼 배열로 선언해야 합니다. 예를 들어, Student
구조체의 배열을 선언해보겠습니다.
var students [3]Student
위의 코드에서 students
는 Student
구조체의 배열로, 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
이처럼 구조체를 배열과 함께 사용하여 데이터를 관리하고 처리할 수 있습니다.
결론
구조체를 배열과 함께 사용하는 방법에 대해 알아보았습니다. 구조체 배열을 사용하면 여러 개의 데이터를 효율적으로 관리할 수 있고, 필요한 작업을 수행할 수 있습니다. 구조체 배열을 선언하고 초기화하는 방법을 익히고, 배열 요소에 접근하여 필드 값을 설정할 수 있는 방법을 기억해두세요.