Go 언어 연산자 및 프로세스 제어의 기본을 이해하는 데 도움이 되는 기사

풀어 주다: 2023-07-20 11:02:07
앞으로
892명이 탐색했습니다.

Operator

이름 연산자는 이상하게 들리지만 실제로는 ==,+,/,+

,/ 등.

  • 연산자는 크게

  • 산술 연산자

  • 관계 연산자

  • 논리 연산자

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

할당 Operator

다음을 간단히 이해해 봅시다. 산술 연산자

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

아래 간략하게 이해해 주시기 바랍니다.

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

관계형 연산자

Operator Description
== 두 값이 같은지 확인하세요. 같으면 True 반환, 그렇지 않으면 False 반환
!= 두 값이 같지 않은지 확인하고, 같지 않으면 True를 반환하고, 그렇지 않으면 False를 반환
> 왼쪽 값이 오른쪽 값보다 큰지 확인하고, 그렇다면 True를 반환하고, 그렇지 않으면 False를 반환합니다
>= 왼쪽 값이 오른쪽 값보다 크거나 같은지 확인하고, 같으면 True를 반환하고, 그렇지 않으면 False를 반환합니다
< 왼쪽 값 확인 오른쪽 값보다 작으면 True를 반환하고, 그렇지 않으면 False를 반환합니다.

논리 연산자

연산자Description
&& 논리 및 연산자. 두 피연산자가 모두 True이면 True이고, 그렇지 않으면 False|
논리 또는 연산자입니다. 두 피연산자 모두 True이면 True이고, 그렇지 않으면 False!
논리적 NOT 연산자입니다. 조건이 True이면 False, 그렇지 않으면 True

참고: 논리 연산자는 매우 중요하며 개발에 자주 사용됩니다.

비트 연산자

비트 연산자는 다소 낮은 수준이므로 특별한 상황에서 사용됩니다

OperatorDescription
& 참여 연산 중인 두 숫자의 해당 이진수 비트를 AND로 연결합니다. (두 비트가 모두 1인 경우에만 1입니다.)
|연산에 참여하는 두 숫자 각각에 해당하는 이진 OR입니다. (두 비트 중 하나가 1이면 1)
^연산에 포함된 두 숫자의 해당 이진수 비트가 배타적이거나 해당 이진수일 때. 비트가 다르므로 결과는 1입니다.(두 자리 숫자가 다르면 1입니다.)
<<n비트를 왼쪽으로 쉬프트하면 2의 n승이 됩니다. "a<
>> n 비트를 오른쪽으로 쉬프트하면 2의 n승으로 나뉩니다. "a>>b"는 a의 모든 이진 비트를 b 비트만큼 오른쪽으로 이동합니다.

대입 연산자

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

Operator Description
= 단순 할당 연산자는 표현식의 값을 lvalue에 할당합니다.
+= 추가한 후 할당
-= 빼고 값 할당
*= 곱한 다음 할당
/= 나누어 값을 할당하세요
%= 나머지를 찾아 할당하세요 가치
<<=왼쪽으로 이동하여 값 지정
>>= 오른쪽으로 이동하여 값 지정
& = 비트 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:
로그인 후 복사

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