> 백엔드 개발 > Golang > Go 언어에서 for range의 구조는 무엇입니까?

Go 언어에서 for range의 구조는 무엇입니까?

青灯夜游
풀어 주다: 2023-01-11 18:00:04
원래의
1866명이 탐색했습니다.

"for range"는 Go 언어의 고유한 반복 구조로, 배열, 슬라이스, 문자열, 맵 및 채널을 순회하는 데 사용할 수 있습니다. "for range"의 구문은 foreach 구조와 유사합니다. "for key, val := range coll {...}"입니다. 매개변수 val은 항상 해당 인덱스 값의 복사본입니다. 컬렉션이므로 일반적으로 읽기 전용이므로 수정 사항이 컬렉션의 원래 값에 영향을 미치지 않습니다.

Go 언어에서 for range의 구조는 무엇입니까?

이 튜토리얼의 운영 환경: Windows 7 시스템, GO 버전 1.18, Dell G3 컴퓨터.

for range 구조는 Go 언어의 고유한 반복 구조입니다. for range는 배열, 슬라이스, 문자열, 맵 및 채널을 통과할 수 있으므로 일반적인 구문과 유사합니다. 해당 언어의 foreach 문의 형식은 다음과 같습니다.

for key, val := range coll {
    ...
}
로그인 후 복사

val은 항상 컬렉션에 있는 해당 인덱스 값의 복사본이므로 일반적으로 읽기 전용이며 수정 사항이 적용되지 않습니다. 컬렉션의 원래 값에 영향을 미칩니다. 문자열은 유니코드로 인코딩된 문자(또는 룬)의 모음이므로 문자열을 반복하는 데에도 사용할 수 있습니다.

for pos, char := range str {
    ...
}
로그인 후 복사

각 룬 문자와 인덱스는 for range 루프에서 일대일 대응을 하며, UTF-8 규칙에 따라 유니코드로 인코딩된 문자를 자동으로 인식합니다.

범위 탐색의 반환 값에는 다음과 같은 특정 규칙이 있습니다.

  • 배열, 슬라이스 및 문자열은 인덱스와 값을 반환합니다.

  • map은 키와 값을 반환합니다.

  • Channel(채널)은 채널의 값만 반환합니다.

배열 및 슬라이스 탐색 - 인덱스 및 값 가져오기

순회 코드에서 키와 값은 각각 슬라이스의 첨자와 해당 첨자에 해당하는 값을 나타냅니다. 배열은 유사합니다. 순회 방법:

for key, value := range []int{1, 2, 3, 4} {
    fmt.Printf("key:%d  value:%d\n", key, value)
}
로그인 후 복사

코드 출력은 다음과 같습니다.

Go 언어에서 for range의 구조는 무엇입니까?

문자열 순회 - 문자 가져오기

Go 언어는 다른 언어와 유사합니다. 범위에 대한 조합입니다. 순회할 때 키와 값은 각각 문자열의 인덱스와 문자열의 각 문자를 나타냅니다.

다음 코드는 문자열을 순회하는 방법을 보여줍니다.

var str = "hello 你好"
for key, value := range str {
    fmt.Printf("key:%d value:0x%x\n", key, value)
}
로그인 후 복사

코드 출력은 다음과 같습니다.

Go 언어에서 for range의 구조는 무엇입니까?

코드에서 변수 값의 실제 유형은 룬 유형이고, 16진수로 인쇄하는 것은 인코딩입니다. 캐릭터의.

맵 탐색 - 맵의 키와 값 가져오기

맵 유형의 경우 범위 탐색 시 키와 값은 각각 맵의 인덱스 키 키와 인덱스에 해당하는 값을 나타냅니다. 일반적으로 맵의 키라고 합니다. 값 쌍은 쌍으로 나타나기 때문에 다음 코드는 맵을 탐색하는 방법을 보여줍니다.

m := map[string]int{
    "hello": 100,
    "world": 200,
}
for key, value := range m {
    fmt.Println(key, value)
}
로그인 후 복사

코드 출력은 다음과 같습니다.

Go 언어에서 for range의 구조는 무엇입니까?

참고:

맵을 순회할 때 순회에 의해 출력되는 키 값은 순서가 지정되지 않은 키 값 쌍 출력이 필요한 경우 결과가 정렬되어야 합니다. 정렬되었습니다.

【관련 추천: Go 비디오 튜토리얼, 프로그래밍 교육

위 내용은 Go 언어에서 for range의 구조는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿