控制语句与数组 golang

与子笑 · · 282 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

if判断

基本控制语句有 if , for , switch 。

if 系列语句和 php 的一些区别,if 条件判断语句不能写小括号,并且在条件判断前可以有初始化操作语句,只能有一个初始化语句, if 下的执行语句由花括号包起来,左花括号必须与 if 同行。

如下:

     if a, b := 3, 4; a == 3 {
            fmt.Println(a)
            fmt.Println(b)
      }

上面代码块变量 a 和 b 只在当前 if 执行语句内有效,如果在 if 块外也有 a 和 b 两个变量则外部同名变量在 if 代码块内被隐藏。

要申明多个变量只能放在同一个语句里面,不能以a:=3;a:=4;这种不行。

循环

循环语句在go里面只有for循环,for循环有三种表现方式。

  1. for{}这一种是无限循环。
  2. for a>3{}这一种可以加一个条件判断,不要去尝试执行语句内不写步长。
  3. 还有一种for循环跟php一样,for a:=1;a<3;a++{}

停止与跳转

三个跳转语句,break,continue,goto

    Lable:    
        for {
            for a := 1; a < 10; a++ {
                if a == 5 {                
                    break Lable            
                } else {                
                    fmt.Println(a)            
                }        
            }    
        }

Lable 为外层 for 的标签,这个 for 是一个无限循环的 for 。

到了第二层如果 a 如果等于 5 了,则会结束到 Lable 对应的 for 。

如果把这个 break 改为 continue 的话,这就是无限循环了,continue 只是结束这一层循环继续下一层循环,改成 goto 的话会重新开始这个 for 循环。

当然,也是一个死循环。

switch 判断不需要手动 break ,符合 case 条件后会执行完语句就停止。

如果需要继续往下走需要手动加上fallthrough语句。

switch 也可以写一个初始化语句。

        switch a := 2; {
        case a == 2:
            fmt.Println(2)
        }

数组

    func main() {    
        x, y := 1, 2    
        a := [2]*int{&x, &y} //保存的是指针,&取址    
        c := [...]int{1: 0}  //...可以代替未知单元个数,会自动算出个数    
        var d *[2]int = &c   //保存的是数组实际的值,指向数组的指针,用关键字new出来的也是指向数组的指针    
        var b = new([2]int)    
        fmt.Println(a)    
        fmt.Println(*a[1]) //*号取值    
        fmt.Println(b)    
        fmt.Println(d)    
        var s [2][3][3]int    
        fmt.Println(s)}
  1. 声明 var a [单元个数]类型,声明并赋值 a:=[单元格数]类型{索引:值},使用var就只能声明不能赋值,使用:=方式就必须得赋值,哪怕是放个空的花括号。
  2. 数组可以进行等于或不等于的比较,数组的长度是作为一种类型存在的,不同类型的数组不能进行比较
  3. 使用 new 声明的数组保存的是指向数组的本身,c := [...]int{1: 1},var d *[2]int = &c, d 保存的也是指向数组的本身。
  4. c 保存的则是数组本身,打印出来 c 和 d 可以看到 d 前面有个 & 符号。
  5. 多维数组申明,可以这么理解 s 里面有两个一维数组,每个一维数组里面有三个数组,属于二维数组,最后一个代表多少个键值对

原文链接:控制语句与数组-GOLANG


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:与子笑

查看原文:控制语句与数组 golang

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

282 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传