1.条件语句:

  跟C和python又不同了Go的if -else是这样的

  if a<5{

    return 0

  }

  else {

    reutrn 1

  }

  1.条件不需要用括号括起来

  2.左边的花括号必须跟if或else一排

  3.在if后条件语句前可以添加变量初始化语句用分号作为间隔

2.选择语句:

  跟C语言的switch是一样的,但是switch后面的表达式不是必须要的,不同的还有case后面不需要用break来明确退出一个case

  switch 变量{

    case 0:

    case 1:

     ...

    default

}

3.循环语句:

  Go语言只支持for循环:

    for i :=0;i<10;i++{
}

    for 变量;条件;表达式

  当使用无线循环的时候直接使用for{}就行了。在for循环中不支持使用逗号分开来赋值变量,只使用一个符号多重赋值就行了

  Go语言跟C一样同意支持continue和break,但是break可以指定具体的某一个循环

4.跳转语句:

  goto跳转到函数的某一个标签

5.函数

 定义   func function_name([parameter list])[return_types]{

        函数体

        return

    }

    function_name:函数名

    parameter list :参数列表

    return_types:返回值类型

    Go语言支持多重返回值和错误处理

    如果参数列表有多个相同的可以结合一起申明(a,b int)

  函数的调用

    非常方便的跟python一样只要导入了函数所在的包就可以直接用了

  函数的不定参数:

    1.不定参数的类型:

      不定参数是指函数传入的参数个数不定。首先要在函数定义的时候定位成接受不定参数的类型。

      func myfunc(args ...int){

        for _,arg := range args{

          fmt.Println(arg)

      }

      args ...int表示接受不定参数的数量,且类型全为int类型。

      形如...type的类型只能作为函数的参数类型存在,而且必须只能是最后一个参数,不能有其他参数。它是一种语法糖(syntactic sugar)意思是对于功能没有影响但是更方便程序员用,增加程序的可读性,减少程序出错。

      但是从内部来说  ...type本质上是一个数组切片也就是[ ]type。所以在访问的时候通过数组切片用for循环来访问

     2.不定参数的传递:

       func myfunc(args ..int){

        myfunc3(args...)//将myfunc的参数args直接全部传递给myfunc3

        myfunc3(args[1:]...)//形如切片传送

     3.任意类型的不定参数传递:

      指定类型为interface{}来进行任意类型参数传递则参数列表为(args ...interface{})

     4.多返回值 

        如 func(file *File)Read(b []byte)(n int,err Error)

        可以返回n和err。err返回的是错误信息,如果没有就是nil

     5.匿名函数和闭包:

        匿名函数只是没有名字的函数。跟C不一样的是Go语言中函数也可以当参数传递(跟python是一样的)。匿名函数可以直接复制给一个变量或者执行(只是为了得到返回值)

        闭包:闭包就是能够读取其他函数内部变量的函数,在本质上,闭包是把函数内部和函数外部连接起来的桥梁。

          自我理解,在函数中设定返回类型为匿名函数,则第一次应用变量名就是匿名函数,再调用变量名就是调用匿名函数。这个匿名函数可以引用这个函数中的各种变量。

#闭包比较难理解自己不懂可以百度

Go语言的流程控制(条件,选择,控制,跳转,闭包)的更多相关文章

  1. java流程控制与选择控制

    流程控制语句 顺序   程序的正常执行 选择 if else多重if,嵌套if,switch; 循环 for whlie,do whlie; 案例1 自己对代码进行改进!!!!!!!!!!!!!!! ...

  2. Excel VBA入门(三) 流程控制1-条件选择

    VBA中的流程控制分为两种,其一是条件结构式的,即根据条件判断的结果去选择性执行相应的语句(块):另一种是循环,即循环地执行语句(块).本节介绍第一种. 1. IF if 语句其实包含有几种形式: ① ...

  3. 037 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 04 switch结构

    037 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 04 switch结构 本文知识点:Java中的switch结构 选择结构分类 选择结构只有如下2种 ...

  4. 035 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 02 多重if结构

    035 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 02 多重if结构 本文知识点:Java中的多重if结构 选择结构回顾 if选择结构 注意: 1.条 ...

  5. 034 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 01 流程控制概述

    034 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 01 流程控制概述 本文知识点:Java中的流程控制相关概念的认识 三大流程控制语句结构的简介 顺序 ...

  6. 038 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 05 案例演示switch结构-星期的表示案例以及总结

    038 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 05 案例演示switch结构-星期的表示案例以及总结 本文知识点:案例演示switch结构并对sw ...

  7. 036 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 03 嵌套if结构

    036 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 03 嵌套if结构 本文知识点:Java中的嵌套if结构 什么是嵌套if结构? 概念: 嵌套if结构 ...

  8. js控制日期选择框datetime-local和select的展开

    注: js控制元素展开不受元素css属性的限制,例如opacity,z-index等 1. 使用js控制日期选择框的展开 ios: document.querySelector(".targ ...

  9. 3015C语言_流程设计

    第五章 流程设计 5.1 C语句概述 C语言的语句用来向计算机系统发出指令,一个实际的源程序通常包含若干语句,这些语句用来完成一定的操作任务. 1.其他类型语句 函数调用语句(由函数调用加一个分号构成 ...

  10. 你好,C++(19)“老师,我这次四级考试过了没有?”——4.2 条件选择语句

    4.2  条件选择语句 “老师,我这次四级考试过了没有?” 如果老师被问到这个问题,他会如何回答?是的,他会根据不同的条件选择不同的回答: 如果考试成绩大于等于60,那就回答:“恭喜你,你通过了这次考 ...

随机推荐

  1. linux下使用bower时提示bower ESUDO Cannot be run with sudo解决办法

    今天准备在使用bower安装一些东西的时候,废了老半天劲,因为需要node环境以及bower平台,安装不顺利,通过百度,最解决了这些问题: 在执行bower命令的时候,总是会报错,原来需要在命令后添加 ...

  2. 吴裕雄 python 机器学习——模型选择分类问题性能度量

    import numpy as np import matplotlib.pyplot as plt from sklearn.svm import SVC from sklearn.datasets ...

  3. 原生js登录创建cookie

    原生js创建cookie,功能:点击登录按钮时,将用户名.密码存为cookie:页面再次加载时,自动读取cookie中的用户名.密码. <html><head><titl ...

  4. 拿到别人的Django程序如何在本地RUN起来

    在Pycharm IDE下 Edit Configurations 1.检查Python interpreter 2.检查 Working directory 3.Settings 数据库配置

  5. python3+requests+BeautifulSoup+mysql爬取豆瓣电影top250

    基础页面:https://movie.douban.com/top250 代码: from time import sleep from requests import get from bs4 im ...

  6. 关注Ionic底部导航按钮tabs在android情况下浮在上面的处理

    Ionic是一款流行的移动端开发框架,但是刚入门的同学会发现,Ionic在IOS和android的底部tabs显示不一样.在安卓情况下底部tabs会浮上去. 如下图展示:  网上也有很多此类的解决方案 ...

  7. docker - 启动不了docker服务

    原因 因为docker是CS架构,Server方要配置好源,客户端才能连接,服务才能开启 解决办法 1.切换到root用户,su root.. 2.sudo vim /etc/docker/daemo ...

  8. django之路由分组,路由分发,FBV,CBV,ORM框架

    今日的内容: a. 路由系统 1. 创建app 2. 路由的分组 3. 路由的分发 - 正则表达式匹配 b. django的orm(模型model) 1. 创建模型的步骤 2. orm基本的增删改查 ...

  9. SSL 证书格式普及,PEM、CER、JKS、PKCS12

    根据不同的服务器以及服务器的版本,我们需要用到不同的证书格式,就市面上主流的服务器来说,大概有以下格式: .DER .CER,文件是二进制格式,只保存证书,不保存私钥. .PEM,一般是文本格式,可保 ...

  10. 【JS 常用操作】全选、给后来元素增加事件

    11 //全选 $("#allCheckbox").click(function () { var checkedStatus = this.checked; //alert(ch ...