首页 > 其他分享 >【Go】流程控制

【Go】流程控制

时间:2024-04-16 17:22:34浏览次数:13  
标签:语句 控制 函数 括号 流程 case switch ... Go

条件语句

  • 条件语句不需要使用括号包含起来,
  • 语句体的花括号是必须的,
  • 左花括号必须与if或者else一行,在if之后,
  • 条件语句之前,可以添加变量初始化语句,用;间隔
  • 在有返回值的函数中,不允许将最终的return包含在if...else... 结构中

选择语句

根据传入调教的不同,选择语句会执行不同的语句。

switch i {
	case 0:
		fmt.Printf("0")
	case 1:
		fallthrough
	case 2,3,4:
		fmt.Printf("2,3,4")
	default:
		fmt.Printf("Defatult")
}

switch后面的表达式不是必须的

switch {
	case 0 <= Num && <= 3:
		fmt.Printf("0-3")
	case 4 <= Num && <=6:
		fmt.Printf("4-6")
	case 7 <= Num && <=9:
		fmt.Printf("7-9")
}

使用switch结构时,需要注意以下几点

  • 左花括号必须与switch处于同一行
  • 条件表达式不限制为常量或者整数
  • 单个case中,可以出现多个结果选项
  • 不需要break来明确退出一个case
  • 只有在case中明确添加fallthrough关键字,才会继续执行紧跟的下一个case
  • 可以不设定switch之后的条件表达式,此种情况下,整个switch结构与多个if...else...的逻辑作用等同

循环语句

  • 关键字只有for,条件表达式不需要用括号包含起来,使用循环语句时应注意
  • 左花括号必须与for处在同一行
  • 允许在循环条件中定义和初始化变量,不支持以逗号为间隔的多个赋值语句,必须使用平行赋值的方式来初始化多个变量
  • 除continue和birek之外,还可以通过break 标签来选择终端哪一个循环

跳转语句

goto,跳转到指定标签

函数

小写字母开头的函数只在本包内可见,大写字母开头的函数才能被其它包使用

不定参数

不定参数只能作为函数的参数类型存在,并且必须是最后一个参数,如果希望传任意类型,可以指定类型为interface{},用interface{}传递任意类型数据是Go的管理用法。

多返回值

匿名函数与闭包

匿名函数由一个不带函数名的函数声明和函数体组成

func(a, b int, z float64) bool {
    return a*b < int(z)
}

花括号直接跟参数列表表示函数调用

闭包

错误处理

标签:语句,控制,函数,括号,流程,case,switch,...,Go
From: https://www.cnblogs.com/liudianer/p/18138736

相关文章

  • go语言使用go-elasticsearch/v8如何操作es8.x版本实现索引的增删查改
    import("context""encoding/json""fmt""github.com/elastic/go-elasticsearch/v8""github.com/elastic/go-elasticsearch/v8/esapi""github.com/elastic/go-elasticsearch/v8/esutil&......
  • 80、SpringBoot3 SpringSecurity Mybatisplus最新版 整合 实现登入权限控制
    1、导入pom依赖<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apac......
  • 开发一个网站流程
    我觉得做一件事,知道它的流程是很重要的,不然直接从中间开始,会很难让人理解我们到底在做什么,该怎么去做去努力。大学那会前后端都学了,但是分开来看我大抵能懂,但是结合起来就不太懂是什么情况了。这里以开发网站为例,主要是希望大家能少走弯路,了解一下开发的流程吧。比如我要开发一个......
  • 2-82. 实现买卖交易的完整流程
    修改InventoryManager修改TradeUI修改InventoryUI项目相关代码代码仓库:https://gitee.com/nbda1121440/farm-tutorial.git标签:20240416_1458......
  • 【Go】02.顺序编程
    类型基础类型类型关键字布尔类型bool整型int8、byte、int16、int、uint、uintptr浮点类型float32、float64复数类型complex64、complex128字符串string字符类型rune错误类型error复合类型类型关键字指针pointer数组array......
  • Python Flask+Pandas读取excel显示到html网页: CSS控制表格样式
    前言全局说明CSS控制表格样式一、安装flask模块二、引用模块三、启动服务模块安装、引用模块、启动Web服务方法,参考下面链接文章:https://www.cnblogs.com/wutou/p/17963563修改内容后,要重启flask服务,修改才能生效四、CSS控制表格样式4.1.2文件名:index.pyfrom......
  • Python Flask+Pandas读取excel显示到html网页:CSS控制表格样式
    前言全局说明一、安装flask模块二、引用模块三、启动服务模块安装、引用模块、启动Web服务方法,参考下面链接文章:https://www.cnblogs.com/wutou/p/17963563四、CSS控制表格样式4.1.2文件名:index.pyfromflaskimportFlaskapp=Flask(__name__)@app.route("/excel......
  • 文件系统(三):嵌入式、计算机系统启动流程与步骤
    liwen012024.04.14前言我们身边的各种电子设备,手机、手表、相机、个人电脑等等,从用户体验的角度看,好像只要给它们一上电,它们就开始启动可以工作了,这个过程一般是比较短暂的。从一个嵌入式开发的角度来看,不管是嵌入式系统,还是其它的计算机系统,其启动过程都是一个相对复杂的过程......
  • C#控制windows的“拖动时显示窗体内容”系统设置
    公司的云桌面,影响到了原生系统的“拖动时显示窗体内容”,做了个处理程序。感谢AI,现在查资料快速了许多。虽然的确有乱说的成分,但是庆幸的是大体思路没问题。usingSystem.Runtime.InteropServices;//检查当前设置booldragFullWindows=MsHelper.GetDragFullWindows();Cons......
  • go语言初解
    go语言初解注释注释用于说明不太容易理解的业务和逻辑,多写注释。c++注释方法//c注释方法/**/变量电脑识别的是机器码,程序是和计算机的沟通桥梁【go程序--汇编--机器码】程序是一些定义的东西//定义一个名字的变量//string字符串类型varnamestring=......