Go语言的流程控制(条件,选择,控制,跳转,闭包)
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语言的流程控制(条件,选择,控制,跳转,闭包)的更多相关文章
- java流程控制与选择控制
流程控制语句 顺序 程序的正常执行 选择 if else多重if,嵌套if,switch; 循环 for whlie,do whlie; 案例1 自己对代码进行改进!!!!!!!!!!!!!!! ...
- Excel VBA入门(三) 流程控制1-条件选择
VBA中的流程控制分为两种,其一是条件结构式的,即根据条件判断的结果去选择性执行相应的语句(块):另一种是循环,即循环地执行语句(块).本节介绍第一种. 1. IF if 语句其实包含有几种形式: ① ...
- 037 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 04 switch结构
037 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 04 switch结构 本文知识点:Java中的switch结构 选择结构分类 选择结构只有如下2种 ...
- 035 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 02 多重if结构
035 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 02 多重if结构 本文知识点:Java中的多重if结构 选择结构回顾 if选择结构 注意: 1.条 ...
- 034 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 01 流程控制概述
034 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 01 流程控制概述 本文知识点:Java中的流程控制相关概念的认识 三大流程控制语句结构的简介 顺序 ...
- 038 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 05 案例演示switch结构-星期的表示案例以及总结
038 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 05 案例演示switch结构-星期的表示案例以及总结 本文知识点:案例演示switch结构并对sw ...
- 036 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 03 嵌套if结构
036 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 03 嵌套if结构 本文知识点:Java中的嵌套if结构 什么是嵌套if结构? 概念: 嵌套if结构 ...
- js控制日期选择框datetime-local和select的展开
注: js控制元素展开不受元素css属性的限制,例如opacity,z-index等 1. 使用js控制日期选择框的展开 ios: document.querySelector(".targ ...
- 3015C语言_流程设计
第五章 流程设计 5.1 C语句概述 C语言的语句用来向计算机系统发出指令,一个实际的源程序通常包含若干语句,这些语句用来完成一定的操作任务. 1.其他类型语句 函数调用语句(由函数调用加一个分号构成 ...
- 你好,C++(19)“老师,我这次四级考试过了没有?”——4.2 条件选择语句
4.2 条件选择语句 “老师,我这次四级考试过了没有?” 如果老师被问到这个问题,他会如何回答?是的,他会根据不同的条件选择不同的回答: 如果考试成绩大于等于60,那就回答:“恭喜你,你通过了这次考 ...
随机推荐
- Postman如何测试Webservice接口?
一般情况下使用soapui工具测试ws接口,那么能不能使用postman测试呢?当然可以,往下看. 1. 首先请求类型为post 填写上ws地址 ,url地址后不追加?wsdl 2. 设置请求头 he ...
- PLSQL Developer 连接多个数据库
1.新建一个Oracle的dblink 2.打开客户端instantclient目录,可能不是和PLSQL Developer 一个目录,然后用记事本编辑tnsnames.ora 3.把链接粘贴进去, ...
- wordpress 添加友情链接
最近入了wordpress的坑,虽然还没深入,但是好歹弄了点东西了:) 一般网站都有友情链接这个东东吧,看网上说这个有个插件的,叫“Link Manager”,添加完了以后就能添加了,可是我今天去搜的 ...
- C语言与汇编的嵌入式编程:main中模拟函数的调用(两数交换)
编写一个两数交换函数swap,具体代码如下: #include<stdio.h> void swap(int *p1,int *p2) { int temp; temp = *p1; *p ...
- 【转载】 BIOS设置选项详细解释——CPU核心篇
原文地址: http://kuaibao.qq.com/s/20180226A1G1OC00?refer=spider ---------------------------------------- ...
- 使用session在jsp页面之间传递多维数组,用于实现全局变量的效果
使用session在jsp页面之间传递多维数组:发送数据的jsp页面:int [][] form_number=new int[4][4]; session.setAttribute("se ...
- 基于G6画个xmind出来
公司产品因为业务发展,出现了一个新的需求:需要去实现知识库的层级知识展示,展示效果通过树图来实现,具体的展示形式可见下图: 其中有几个需要注意点: 节点上的详情icon可以点击,点击展开关闭详情 节点 ...
- oracle 提取文本中的数字
提取文本中的数字部分,并转换为数字 TO_NUMBER(regexp_substr(AGE,'[0-9.]+'))
- MyBatis-Plus学习笔记(3):分页查询
依赖配置可参考:MyBatis-Plus学习笔记(1):环境搭建以及基本的CRUD操作 分页配置 @Configuration public class PlusConfig { @Bean publ ...
- 《Web安全攻防 渗透测试实战指南 》 学习笔记 (三)
Web安全攻防 渗透测试实战指南 学习笔记 (三) burp suite详解 是一款集成化渗透测试工 ...