>  기사  >  백엔드 개발  >  Go 언어의 기본 연산자와 흐름 제어를 이해하는 데 도움이 되는 기사입니다.

Go 언어의 기본 연산자와 흐름 제어를 이해하는 데 도움이 되는 기사입니다.

Go语言进阶学习
Go语言进阶学习앞으로
2023-07-20 14:38:04579검색
이번에도 Go의 기본 연산자와 흐름 제어를 계속해서 배웁니다.

Operator

Operator는 이상하게 들리지만 실제로는 ==,+,/,+

,/ 등.

  • 연산자는 크게

  • 산술 연산자

  • 관계 연산자

  • 논리 연산자

    로 나누어집니다.
  • 비트 연산자

할당 Operator


🎜🎜 다음을 간단히 이해해 봅시다. 🎜🎜🎜🎜🎜

산술 연산자

이름에서 알 수 있듯이 산술 연산자는 덧셈, 뺄셈, 곱셈, 나눗셈 등의 산술에 주로 사용됩니다.

간단한 소개는 다음과 같습니다.

operator 설명 추가
- 빼기
* 곱하기
/ 나누기
% 나머지 찾기
++ 직접 추가함
- - 자기감소


관계형 연산자

Operator Description
== 두 값이 같은지 확인하세요. 같으면 True 반환, 그렇지 않으면 False 반환
!= 두 값이 같지 않은지 확인하고, 같지 않으면 True를 반환하고, 그렇지 않으면 False를 반환
> 왼쪽 값이 오른쪽 값보다 큰지 확인하고, 그렇다면 True를 반환하고, 그렇지 않으면 False를 반환합니다
>= 왼쪽 값이 오른쪽 값보다 크거나 같은지 확인하고, 같으면 True를 반환하고, 그렇지 않으면 False를 반환합니다
44048c548e63e5a638be01b44e3b7d21> n 비트를 오른쪽으로 쉬프트하면 2의 n승으로 나뉩니다. "a>>b"는 a의 모든 이진 비트를 b 비트만큼 오른쪽으로 이동합니다.


할당 연산자

할당 연산자는 개발에서도 흔히 사용됩니다.

Operator Description
= 단순 할당 연산자는 표현식의 값을 lvalue에 할당합니다.
+= 추가한 후 할당
-= 빼고 값 할당
*= 곱한 다음 할당
/= 나누어 값을 할당하세요
%= 나머지를 찾아 할당하세요 가치
0106e3421b10e8c95918b23fb9f8a5b6>= 오른쪽으로 이동하여 값 지정
& = 비트 AND
|= 후 할당 비트별 OR 후 할당
^= 비트별 XOR 후 할당


프로세스 제어

Go에는 다음과 같은 유형의 프로세스 제어가 있습니다.

  • if

    • if

    • 케이스 전환

  • for

    • 표준 for

    • forrange

  • goto(주의해서 사용)


if

Syntax

//方式一,一个if
if 条件{
    //执行语句
}
//方式二,if条件不成功执行else
if 条件{
    //if成功语句
}else{
    //if不成功语句
}
//方式三,带有else if得
if 条件1{
    //if成功语句
}else if 条件2{
    //if不成功,继续else if条件
}else{
    //上面都不成功,执行else
}


package main

import "fmt"

func main() {
    var gender = "男"

    if gender == "男" {
        fmt.Println("男")
    } else if gender == "女" {
        fmt.Println("女")
    } else {
        fmt.Println("啥都不是???")
  }
}


switch case

switch caseif本质是一个东西,但是在某些场景,switch是比if更加简洁的。

代码

package main

import "fmt"

func main() {
    var week = 3
    switch week {
    case 1:
        fmt.Println("周一")
    case 2:
        fmt.Println("周二")
    case 3:
        fmt.Println("周三")
    case 4:
        fmt.Println("周四")
    case 5:
        fmt.Println("周五")
    case 6:
        fmt.Println("周六")
    case 7:
        fmt.Println("周日")
    default://如果上面都没执行,会执行default
        fmt.Println("星期八????")
  }
}

注:在Go中,switch是没有case穿透的。


Go的switch可以case多个值。

package main

import "fmt"

func main() {
    var week = 3
    switch week {
    case 1, 2, 3, 4, 5:
        fmt.Println("上班")
    case 6:
        fmt.Println("周六睡懒觉")
    case 7:
        fmt.Println("周日去旅游")
    default:
        fmt.Println("飞天了???")
  }
}


for

标准for循环

语法

for 初始条件;判断条件;结束条件{
    语句
}

代码

package main

import "fmt"

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

无限循环

谨慎执行!!!

package main

import "fmt"

func main() {
    for{
        fmt.Println("666")
  }
}

for range

for ragne可以很方便循环数组,切片,字符串,map,channel等。

遍历数组示例

package main

import "fmt"

func main() {
    var student_list = [...]string{"张三", "李四", "王五"}
    for index, v := range student_list {
        //index为下标,v是每一个的值
        fmt.Println(index, v)
  }
}

注:

如果数组,切片,字符串
  index是下标,v是值
如果是map
  index是键,v是对(值)
如果是通道
  只有一个值,就是通道内的值

补充:

在Go中,只有for循环,没有while。

for循环就两种方式。


goto

goto可以通过标签在代码间无条件跳转,这就造成了一个局面,如果使用gote过多,会造成逻辑混乱,跳来跳去。

所以,在开发中,要慎用,不到万不得已,不要使用。


示例

package main

import "fmt"

func main() {
  for i := 0; i < 10; i++ {
    for j := 0; j < 10; j++ {
      if j == 2 {
        // 直接跳转到下面的 breakTag 标签
        goto breakTag
      }
      fmt.Printf("%v-%v\n", i, j)
    }
  }
  //要跳转的标签
breakTag:
  fmt.Println("结束for循环")
  }


위 내용은 Go 언어의 기본 연산자와 흐름 제어를 이해하는 데 도움이 되는 기사입니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 Go语言进阶学习에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제