상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
궁금한 상식 보기
엠파이어 스테이트 빌딩의 내부 구조는 어떻게 되어 있나요?
자유의 여신상은 미국 독립 100주년을 기념하여 세워졌나요?
자유의 여신상과 관련된 자원봉사 기회는 무엇이 있나요?
자유의 여신상과 더불어 뉴욕을 대표하는 상징은 무엇인가요?
브루클린에서 가장 유명한 랜드마크는 무엇인가요?
브루클린의 역사적인 건축물은 무엇이 있나요?
식초와 미네랄의 관계는?
식초의 pH와 건강 간의 관계는?
식초를 사용한 손쉬운 와인 마리네이드 만들기.
낙지를 활용한 요리의 칼로리 비교는?
독일과 네덜란드 비교: 스트레스를 다루는 방식은 어떻게 다른가?
독일과 네덜란드 비교: 우정과 사회적 관계의 형성 방식은 어떻게 다를까?
Previous
Next
수정하기 - Go 언어의 `range` 문은 어떻게 사용하나요?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
Go 언어에서 `range` 문은 슬<a href='https://sangseek.com/sangseeks/라이스/ko'>라이스</a>, 배열, 맵, 문자열, 채널 등 다양한 데이터 구조를 반복(iterate)하는 데 사용됩니다. `range` 문을 사용하면 데이터 구조의 요소를 쉽게 순회할 수 있으며, 각 요소의 인덱스와 값을 동시에 가져올 수 있습니다. 아래에서는 `range` 문을 사용하는 방법에 대해 자세히 설명하겠습니다. 1. 슬라이스와 배열에서의 사용 슬라이스와 배열에서 `range` 문을 사용하면 각 요소의 인덱스와 값을 가져올 수 있습니다. ```go package main import "fmt" func main() { // 슬라이스 선언 numbers := []int{1, 2, 3, 4, 5} // range 문을 사용하여 슬라이스 반복 for index, value := range numbers { fmt.Printf("Index: %d, Value: %d\n", index, value) } } ``` 위의 예제에서 `range numbers`는 `numbers` 슬라이스의 각 요소에 대해 반복하며, `index`는 현재 요소의 인덱스, `value`는 해당 인덱스의 값을 나타냅니다. 2. 맵에서의 사용 맵에서도 `range` 문을 사용할 수 있으며, 이 경우 키와 값을 가져올 수 있습니다. ```go package main import "fmt" func main() { // 맵 선언 ages := map[string]int{ "Alice": 30, "Bob": 25, "Charlie": 35, } // range 문을 사용하여 맵 반복 for name, age := range ages { fmt.Printf("Name: %s, Age: %d\n", name, age) } } ``` 이 예제에서는 `ages` 맵의 각 키와 값을 반복하여 출력합니다. 3. 문자열에서의 사용 문자열에 대해 `range` 문을 사용할 경우, 각 문자의 인덱스와 해당 문자를 가져올 수 있습니다. 이때, Go는 UTF-8 인코딩을 사용하므로, 다국어 문자열도 올바르게 처리할 수 있습니다. ```go package main import "fmt" func main() { // 문자열 선언 str := "Hello, 世界" // range 문을 사용하여 문자열 반복 for index, runeValue := range str { fmt.Printf("Index: %d, Rune: %c\n", index, runeValue) } } ``` 위의 예제에서 `runeValue`는 현재 인덱스의 문자를 나타내며, `index`는 해당 문자의 바이트 인덱스를 나타냅니다. 4. 채널에서의 사용 채널에서도 `range` 문을 사용할 수 있으며, 채널에서 값을 수신할 때 유용합니다. ```go package main import ( "fmt" "time" ) func main() { // 채널 생성 ch := make(chan int) // 고루틴을 사용하여 채널에 값 전송 go func() { for i := 0; i < 5; i++ { ch <- i time.Sleep(time.Second) } close(ch) // 채널 닫기 }() // range 문을 사용하여 채널에서 값 수신 for value := range ch { fmt.Println("Received:", value) } } ``` 이 예제에서는 고루틴을 사용하여 채널에 값을 전송하고, `range` 문을 통해 채널에서 값을 수신합니다. 채널이 닫힐 때까지 반복합니다. 5. 인덱스 또는 값만 가져오기 `range` 문에서 인덱스 또는 값 중 하나만 필요할 경우, 언더스코어(`_`)를 사용하여 무시할 수 있습니다. ```go package main import "fmt" func main() { // 슬라이스 선언 fruits := []string{"apple", "banana", "cherry"} // 인덱스는 무시하고 값만 가져오기 for _, fruit := range fruits { fmt.Println("Fruit:", fruit) } // 값은 무시하고 인덱스만 가져오기 for index := range fruits { fmt.Println("Index:", index) } } ``` 이렇게 `range` 문을 사용하면 Go 언어에서 다양한 데이터 구조를 쉽게 반복할 수 있으며, 코드의 가독성을 높이고 오류를 줄이는 데 큰 도움이 됩니다. `range` 문은 Go의 강력한 기능 중 하나로, 다양한 상황에서 유용하게 사용될 수 있습니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기