If/Else, Switch Case, Looping, Golang의 포인터

2222 단어 golearngo
이전 강의에서는 Golang의 데이터 유형에 대해 배웠습니다. 이번 강의에서는 golang의 제어 흐름에 대해 알아봅니다.

golang의 다른 경우



아래 예제와 같이 조건문에 if-else 문을 활용할 수 있습니다. 조건이 중괄호와 같은 줄에 있는지 확인하십시오.

if num := 9; num < 0 {
 fmt.Println(num, "is negative")
} else if num < 10 {
 fmt.Println(num, "has 1 digit")
} else {
 fmt.Println(num, "has multiple digits")
}


golang에서 케이스 전환



스위치 케이스를 사용하면 긴 조건문을 간소화할 수 있습니다. 간단한 switch case 문은 아래 예에서 보여줍니다.

i := 2
switch i {
case 1:
 fmt.Println("one")
case 2:
 fmt.Println("two")
default:
 fmt.Println("none")
}


golang에서 루핑



Go의 루프에는 단일 키워드가 있습니다. 단일 for 루프 명령을 사용하여 다음을 포함한 다양한 루프를 생성할 수 있습니다.

i := 0
sum := 0
for i < 10 {
 sum += 1
  i++
}
fmt.Println(sum)


위에 표시된 예는 C의 while 루프와 비슷합니다. 일반적인 for 루프는 동일한 for 문을 사용하여 구현할 수 있습니다.

sum := 0
for i := 0; i < 10; i++ {
  sum += i
}
fmt.Println(sum)


Go의 무한 루프:

for {
}


golang의 포인터



이동 화살표를 제공합니다. 값의 주소를 저장하는 위치는 포인터입니다. *는 포인터 정의입니다. 포인터의 정의는 데이터 유형에 따라 다릅니다. 예시:

var ap *int


여기서는 정수형 ap에 대한 포인터가 사용됩니다. 변수의 주소는 & 연산자를 사용하여 얻을 수 있습니다.

a := 12
ap = &a


* 연산자를 사용하여 포인터가 가리키는 값에 액세스할 수 있습니다.

fmt.Println(*ap)
// => 12


정의된 유형에 대한 메서드를 선언하거나 구조체를 인수로 보낼 때 일반적으로 포인터가 선택됩니다.
  • 값을 전달할 때 실제로 값이 복사되어 추가 메모리를 소비합니다.
  • 함수가 변경한 값은 제공된 포인터의 도움으로 메소드 또는 함수 호출자에게 다시 반영됩니다.

  • func increment(i *int) {
      *i++
    }
    func main() {
      i := 10
      increment(&i)
      fmt.Println(i)
    }
    //=> 11
    


    메인 패키지에 샘플 코드를 포함하고 첫 번째 메인에서 설명한 것처럼 블로그의 예제 코드를 사용할 때 필요에 따라 fmt 또는 기타 패키지를 가져오십시오. 앞의 예를 따르십시오.

    좋은 웹페이지 즐겨찾기