Go(Golang)_01_基础语法

基础语法

if

if判断定义格式:

if 条件 {
	程序段
} else if 条件 {
	程序段
} else {
	程序段
}

1)可通过&&(与)或||(或)运算符实现多条件判断;

2)可在条件前添加执行语句,并以“;”分隔(在判断条件前会执行该语句);

3)条件语句前的执行语句创建的对象仅在执行if语句时有效;


如:在if条件前添加执行语句影响最终结果

1)编写程序;

package main

import "fmt"

func main() {
    var i int
    if num := 2; num == 0 {
        i = 1
    } else if num = 1; num == 1 {
        i = 2
    } else {
        i =3 
    }

    fmt.Println(i)
}

2)运行结果;
在这里插入图片描述


for

Go中for循环的定义格式分为两种:基于条件、基于数据集合

1)循环内部创建的变量总是使用同一块内存地址;


(1)for循环定义格式(基于条件):

for  语句1; 判断条件; 语句2  {
    程序段
}

1)语句1在for循环开始前执行,语句2则在循环每进行一次后执行;

2)若省略全部语句和“;”,则代表为无限循环;

3)也可仅指定多个判断条件(&和|连接);

//类似C/C++中的for循环(除没有()括住语句的差别)


(2)for循环定义格式(基于数据集合):

for1,2  :=  range  数据  {
    程序段
}

1)返回值的个数由指定的数据集合返回的值的多少决定(常为2个);

2)源码中第二种for循环是基于第一种for循环实现的;

//但第二种for循环可优雅遍历字符串、Slice、map和channel的功能



for-range循环须知:

1)作用于值为nil的通道时会永久阻塞;

2)for-range在循环开始前就已确定循环次数;

3)由于循环次数已确定,不可在循环过程中添加元素;

4)遍历Slice时不能通过返回值修改Slice的源数据(返回值是拷贝数据);

//遍历map时虽未指定循环次数,但期间添加元素仍可能遍历不到


如:通过基于数据集合的for循环输出切片内容

1)编写程序;

package main

import (
    "fmt"
    "sync"
)

func main() {
    s := []int{1, 2, 3}
    var wg sync.WaitGroup
    wg.Add(len(s))

    for _, v := range s {
        go func() {
            fmt.Println(v)  //当goroutine启动时,外层循环已遍历到值3
            wg.Done()       //可通过参数传递解决(每次循环立刻调用变量)
        }()
    }

    wg.Wait()
}

2)运行结果;
在这里插入图片描述


switch

Go中switch分支的定义格式分为两种:switch判断、case判断

1)分支中程序段可添加fallthrough关键词,代表无论下个分支是否成立都执行

//前提是该分支成立后,fallthrough关键词才可发挥作用


(1)switch分支定义格式(switch判断):

switch  判断条件  {
case  分支1:
    程序段
case  分支2, 分支3:
    程序段
default:
    程序段
}

1)可指定多个分支为同一情况;

2)默认所有分支都不满足,则执行默认分支(default);


(2)switch分支定义格式(case判断):

switch  {
case  判断条件1:
    程序段
case  判断条件N:
    程序段
default:
        程序段
}

如:通过switch分支进行输出
1)编写程序;
在这里插入图片描述
2)运行结果;
在这里插入图片描述


多重赋值

多重赋值:多个变量可一次性被赋值,即使赋值公式中调用被赋值的对象

1)本质:先计算右表达式的值并存储在内存中,再从内存中取出值赋值于左边

2)Go中赋值过程可使用空标识符“_”(下划线)表示将该值丢弃;


如:通过多重赋值实现查找两个数的最大公约数

1)编写程序;
在这里插入图片描述
2)运行结果;
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值