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 结束
} // 函数结束
相关推荐
Rain的Java大神之路1 小时前
别再瞎装 RabbitMQ 了!从 0 到 1 部署到 Spring Boot 全链路实战,生产级坑全填平
java·后端·面试
liyunlong-java1 小时前
敏感词过滤完整指南(DFA 字典树)
java·开发语言·spring
专业程序开发源1 小时前
SSM笔记本在线销售系统32649-计算机课程设计、毕业设计
java·spring boot·后端·python·django·php·课程设计
(Charon)1 小时前
【C++面试】四种cast转换:static_cast、dynamic_cast、const_cast与reinterpret_cast
开发语言·c++·面试
脉动数据行情11 小时前
Python asyncio 异步实现比特币 BTC 实时行情监听 高并发版
开发语言·python·区块链
爱吃奥利奥_wen1 小时前
排序算法通关手册:从 O(n²) 到 O(n log n),用一篇文章打通算法内功心法
开发语言·经验分享
FYKJ_20101 小时前
express绿叶横店短剧推荐与影评分享平台34219-计算机课程设计、毕业设计
java·javascript·vue.js·spring boot·后端·课程设计·express
外收内放1 小时前
Python基础语法练习题(55-56)
开发语言·python
Do_It_Today1 小时前
php 可变函数使用小结
开发语言·php