分享
  1. 首页
  2. 文章

控制语句与数组 golang

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

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

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

用户登录

没有账号?注册
(追記) (追記ここまで)

今日阅读排行

    加载中
(追記) (追記ここまで)

一周阅读排行

    加载中

关注我

  • 扫码关注领全套学习资料 关注微信公众号
  • 加入 QQ 群:
    • 192706294(已满)
    • 731990104(已满)
    • 798786647(已满)
    • 729884609(已满)
    • 977810755(已满)
    • 815126783(已满)
    • 812540095(已满)
    • 1006366459(已满)
    • 692541889

  • 关注微信公众号
  • 加入微信群:liuxiaoyan-s,备注入群
  • 也欢迎加入知识星球 Go粉丝们(免费)

给该专栏投稿 写篇新文章

每篇文章有总共有 5 次投稿机会

收入到我管理的专栏 新建专栏