go 语言结构控制
if else 结构:
#第一种
if condition {
// do something
}
#第二种
if condition {
// do something
} else {
// do something
}
#第三种
if condition1 {
// do something
} else if condition2 {
// do something else
}else {
// catch-all or default
}
#注意大括号的位置,都是固定的
if在condition 中还可以加上赋值语句
if val := 10; val > max {
// do something
}
switch 结构
#第一种
switch var1 {
case val1:
...
case val2:
...
default:
...
}
#第二种
switch {
case i < 0:
f1()
case i == 0:
f2()
case i > 0:
f3()
} #第三种 switch result := calculate(); {
case result < 0:
...
case result > 0:
...
default:
// 0
}
for 循环
#第一种
for i:=0; i<5; i++ {
for j:=0; j<10; j++ {
println(j)
}
}
#第二种
for a < b {
a++
fmt.Printf("a 的值为: %d\n", a)
}
# 类似其他语言for和while
无限循环
for true {} 或者for {} 这种内部需要有条件判断来退出循环
for range 结构
这是 Go 特有的一种的迭代结构,您会发现它在许多情况下都非常有用。它可以迭代任何一个集合(包括数组和 map,详见第 7 和 8 章)。语法上很类似其它语言中 foreach 语句,但您依旧可以获得每次迭代所对应的索引。一般形式为: for ix, val := range coll { } 。要注意的是, val 始终为集合中对应索引的值拷贝,因此它一般只具有只读性质,对它所做的任何修改都不会影响到集合中原有的值(译者注:如果 val 为指针,则会产生指针的拷贝,依旧可以修改集合中的原值)
func main() {
s :="hello world"
for in,va := range s{
fmt.Print(in,va,"\n")
}
} #va 索引值的拷贝
0 104
1 101
2 108
3 108
4 111
5 32
6 119
7 111
8 114
9 108
10 100
关键字fallthrough
在switch语句中,如果一个case语句后面加了fallthrough那么会直接执行下一个case里面的内容
func main() {
switch Num:=;{
case <= Num && Num <= :
fmt.Printf("0-3")
fallthrough
case <= Num && Num <= :
fmt.Printf("4-6")
case <= Num && Num <= :
fmt.Printf("7-9")
}
}
--
go 语言结构控制的更多相关文章
- 04. Go 语言流程控制
Go 语言流程控制 流程控制是每种编程语言控制逻辑走向和执行次序的重要部分,流程控制可以说是一门语言的"经脉". Go 语言的常用流程控制有 if 和 for,而 switch 和 ...
- 实验七 MySQL语言结构
实验七 MySQL语言结构 一. 实验内容: 1. 常量的使用 2. 变量的使用 3. 运算符的使用 4. 系统函数的使用 二. 实验项目:员工管理数据库 用于企业管理的员工管理数据库,数据库名为 ...
- 漫谈C语言结构体struct、公用体union空间占用
先用代码说话: #include<stdio.h> union union_data0{ int a ;//本身占用4个字节 char b ;//本身占用1个字节 int c ; }; u ...
- 解析C语言结构体对齐(内存对齐问题)
C语言结构体对齐也是老生常谈的话题了.基本上是面试题的必考题.内容虽然很基础,但一不小心就会弄错.写出一个struct,然后sizeof,你会不会经常对结果感到奇怪?sizeof的结果往往都比你声明的 ...
- 不可或缺 Windows Native (8) - C 语言: 结构体,共用体,枚举,类型定义符
[源码下载] 不可或缺 Windows Native (8) - C 语言: 结构体,共用体,枚举,类型定义符 作者:webabcd 介绍不可或缺 Windows Native 之 C 语言 结构体 ...
- (转)PHP的语言结构和函数的区别
相信大家经常看到对比一些PHP应用中,说用isset() 替换 strlen(),isset比strlen执行速度快等. 例子: if ( isset($user) ) { //do some thi ...
- php入门 数据类型 运算符 语言结构语句 函数 类与面向对象
php PHP-enabled web pages are treated just like regular HTML pages and you can create and edit them ...
- Go语言结构体(struct)
Go 语言结构体 Go 语言中数组可以存储同一类型的数据,但在结构体中我们可以为不同项定义不同的数据类型. 结构体是由一系列具有相同类型或不同类型的数据构成的数据集合. 结构体表示一项记录,比如保存图 ...
- C语言结构体定义的几种方法
什么是结构体? 在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型(aggregate data type)的一类.结构体可以被声明为变量.指针或数组等,用以实现较复杂的数据 ...
随机推荐
- axios 如何获取下载文件的进度条
exportFun(){ let _that = this const instance = this.axios.create({ onDownl ...
- 抓包工具Charles简单使用介绍(可抓取Android中app的请求)
摘自: 作者:Roy_Liang链接:http://www.jianshu.com/p/5539599c7a25 Charles安装 HTTP抓包 HTTPS抓包 1. Charles安装 官网下 ...
- sql for loop
--step1 disable constraint begin for i in (select uc.constraint_name, uc.table_name from user_constr ...
- Sass--混合宏--声明宏
如果你的整个网站中有几处小样式类似,比如颜色,字体等,在 Sass 可以使用变量来统一处理,那么这种选择还是不错的.但当你的样式变得越来越复杂,需要重复使用大段的样式时,使用变量就无法达到我们目了.这 ...
- 洛谷4721 【模板】分治 FFT
传送门 久违的多项式全家桶= =+ 分治NTT 用的就是cdq分治的思想 对于当前递归到的区间[l,r] 我们处理出[l,mid]对[mid+1,r]答案的贡献 然后分治递归求解就可以啦qwq 这个贡 ...
- 如何通过Dataphin构建数据中台新增100万用户?
欢迎来到数据中台小讲堂!这一期我们来看看,作为阿里巴巴数据中台(OneData - OneModel.OneID.OneService)方法论的产品载体,Dataphin如何帮助传统零售企业实现数字化 ...
- c#消息窗体
C#模拟弹出窗体系统菜单介绍 using System.Runtime.InteropServices; ; ; ; ; ; ; const uint TPM_VCENTERALIGN = 0x10; ...
- BZOJ 1369: [Baltic2003]Gem(树形dp)
传送门 解题思路 直接按奇偶层染色是错的,\(WA\)了好几次,所以要树形\(dp\),感觉最多\(log\)种颜色,不太会证. 代码 #include<iostream> #includ ...
- HihoCoder - 1664 (单调队列)
题目:https://vjudge.net/contest/319166#problem/B 题意: 一个01间隔矩阵,求一个方阵的最大边长,这个方阵的要求是里面01分隔,不能有01相邻 思路:同 ...
- [CSP-S模拟测试]:画作(BFS+数学)
题目描述 小$G$的喜欢作画,尤其喜欢仅使用黑白两色作画.画作可以抽象成一个$r\times c$大小的$01$矩阵.现在小$G$构思好了了他的画作,准备动笔开始作画.初始时画布是全白的,他每一次下笔 ...