Golang 基础02 控制语句

控制语句:if/else 、for的三种型态 、range 、switch

if/else

使用if/else链给分数评级,并演示if的初始化语句

Go 复制代码
func Classify(score int) (grate string, ok bool) {//具名返回值,在函数内不用定义可以直接用并且return的时候不用写返回什么值
	if score < 1 || score > 100 {
		grate = "No"
		ok = false
	}
	if s := score; s >= 60 { //这里定义了一个作用域仅限于该if控制链的变量
		grate = "pass"
		ok = true
	} else {
		grate = "no pass"
		ok = false
	}
	return //默认return grete ok两个变量

}
func main() {
	fmt.Println(Classify(1))
}

for循环,经典的三段式循环求和

Go 复制代码
for i,sum:=0,0;i<10;i++{ //这里也可以单独写一个循环条件,这样就类似于while循环了,因为go本身循环没有while循环,所以这样来说就是替代了while循环
    sum += i
}

for循环,for rang遍历

Go 复制代码
for index,data range nums{ //这个nums是个切片,index下表,data内容副本
    略
}
for i range n{ //这个n是整数,这个循环的意义是从0到n-1
    略
}

switch 分支语句

Go 复制代码
func SwitchType(v any) string { // any 是 interface{} 的别名(Go 1.18+)
	switch t := v.(type) { // 类型 switch: t 在各分支中拥有对应的具体类型
	case nil: // 接口零值分支
		return "nil" // 未装入任何动态类型
	case int, int64: // 多个类型可合并; 此时 t 的静态类型仍是 any
		return fmt.Sprintf("integer %v", t) // %v 打印动态值
	case string: // 字符串分支: 此处的 t 静态类型已是 string
		return "string<" + t + ">" // 可直接做字符串拼接
	case error: // 错误分支: 此处的 t 静态类型已是 error 接口
		return "error: " + t.Error() // 可调用接口方法
	default: // 其它类型
		return fmt.Sprintf("%T", v) // %T 打印动态类型名
	} // switch 结束
} // 函数结束
相关推荐
脏脏a11 分钟前
延迟与画质:远程控制的生命线
开发语言·php
武子康33 分钟前
H3-World 的动作没按时发生,先检查时间线变成了什么
人工智能·后端·agent
苍何35 分钟前
腾讯 Buddy One 来了,办公全家桶一键打通WorkBuddy(附教程)
后端
像风一样的男人@40 分钟前
python --基于scp的文件传输助手
开发语言·python
一条破秋裤40 分钟前
SDIO Wi‑Fi 设备的驱动向insmod + 反向rmmod
开发语言·php
m0_639906941 小时前
Java 重写 Override 与重载 Overload 区别、访问修饰符、static 关键字
java·开发语言
Evand J1 小时前
【MATLAB例程】平面下,5基站对待定位点的定位。基于距离辅助下的AOA。完整代码下载链接
开发语言·matlab·平面·定位·导航·测距·aoa
GIS数据转换器1 小时前
基于CIM的城市智慧供热监管服务平台
java·大数据·开发语言·人工智能·后端·物联网·struts
weixin_417396831 小时前
星级酒店境外电视频道怎么合法接入?合规要点与核对清单
开发语言·前端·php·1024程序员节·综合布线
adfreedom1 小时前
如何避免每个业务系统中都有几十个枚举查询
后端