Go에서 for 루프를 작성하는 모든 방법
5861 단어 go

게시물All the Ways to Write for Loops in Go은 Qvault에 처음 등장했습니다.
for 루프는 코드 블록을 반복적으로 실행하며 Golang에서는 코드를 작성하는 여러 가지 방법이 있습니다.
For-range loop
#1 표준 3성분 루프
Go에는 C, Java 또는 JavaScript에서 익숙할 3개 구성 요소 루프에 대한 상당히 표준적인 구문이 있습니다. 가장 큰 차이점은 구성 요소를 둘러싼 괄호가 없다는 것입니다.
for i := 0; i < 100; i++ {
sum += i
}
세 가지 구성요소는 init 문
i := 0
, 조건문i < 100
및 post 문i++
입니다. 루프를 실행하는 단계는 다음과 같습니다.true
로 평가되면 본문이 실행되고 그렇지 않으면 루프가 완료됩니다. #2 For-range 루프
종종 맵, 슬라이스, 채널 또는 문자열과 같은 항목 모음을 반복하는 것이 유용해 보입니다. 기존의 3개 구성 요소 루프를 사용할 수 있지만 Go에서는
range
키워드를 사용하여 쉽게 만들 수 있습니다.Go에서 슬라이스 범위
fruits := []string{"apple", "banana", "pear"}
for i, fruit := range fruits {
fmt.Println(i, s)
}
// prints:
// 0 apple
// 1 banana
// 2 pear
Go에서 지도 범위
ages := map[string]int{
"lane": 26,
"preston": 28,
"rory": 21,
}
for name, age := range ages {
fmt.Println(name, age)
}
// prints:
// lane 26
// preston 28
// rory 21
Go에서 채널 범위
ch := make(chan int)
go func() {
for i := 0; i < 3; i++ {
ch <- i
}
close(ch)
}()
// loop ends when channel is close
for value := range ch {
fmt.Println(value)
}
fmt.Println("channel closed")
// prints:
// 0
// 1
// 2
// channel closed
Go에서 문자열 범위
name := "lane"
for i, char := range name {
// cast the rune to a string for printing
fmt.Println(i, string(char))
}
// prints
// 0 l
// 1 a
// 2 n
// 3 e
#3 While 루프
for-loop 서명에서 3개가 아닌 단일 구성 요소를 사용하여 Golang에서 while 루프를 효과적으로 구축할 수 있습니다. Go에는
while
키워드가 없습니다.sum := 1
for sum < 10 {
sum += sum
}
fmt.Println(sum)
#4 선택적 구성 요소 루프
유연한 for 루프의 아이디어를 바탕으로 3개 구성 요소 루프의 init 또는 post 문을 원하는 대로 생략할 수 있습니다.
i := 0
for ; sum < 1000; i++ {
sum += i
}
for i := 0; sum < 1000; {
sum += i
i++
}
do-while, or an immediate first tick from a ticker.과 같은 것을 원할 때 유용한 패턴이 될 수 있습니다.
#5 무한 루프
무한 루프는 영원히 계속되어야 하는 작업자나 프로세스가 있을 때 고루틴 내에서 유용합니다.
sum := 0
for {
sum++ // repeated forever
}
// never reached, loops continues on forever
#6 루프에서 벗어나기
루프에서 일찍 중단하는 것은 특히 무한 루프에서 유용할 수 있습니다.
break
키워드는 루프를 즉시 종료합니다.sum := 0
for {
sum++
if sum >= 1000 {
break
}
}
fmt.Println(sum)
// prints:
// 1000
#7 루프에서 계속(다음 반복으로 건너뛰기)
루프의 다음 반복으로 일찍 건너뛰는 것이 유용할 수 있습니다. 이것은 루프 내에서 guard clauses에 대한 좋은 패턴이 될 수 있습니다.
for i := 0; i < 10; i++{
if i % 2 == 0 {
continue
}
fmt.Println(i, "is odd")
}
// prints
// 1 is odd
// 3 is odd
// 5 is odd
// 7 is odd
// 9 is odd
읽어 주셔서 감사합니다. 이제 과정을 수강하십시오!
기술 분야의 고임금 직업에 관심이 있으십니까? 실습 코딩 과정을 마친 후 인터뷰를 시작하고 멋지게 통과합니다.
Start coding now
질문?
질문이나 의견이 있으면 트위터에서 나를 팔로우하고 연락하십시오. 기사에서 실수를 한 경우 반드시 let me know 수정하여 수정할 수 있도록 해주세요!
Subscribe 받은 편지함으로 바로 전달되는 더 많은 코딩 기사를 보려면 내 뉴스레터로 보내십시오.
Reference
이 문제에 관하여(Go에서 for 루프를 작성하는 모든 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/qvault/all-the-ways-to-write-for-loops-in-go-4b47텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)