前言
本文档旨在介绍Go语言中函数的定义与使用,以及各种控制流语句的示例。通过本文档,读者将了解函数的基本概念和语法,以及如何使用if-else、switch、for和select等流程控制语句。
函数定义使用
在这一部分,将介绍如何定义和使用函数,并提供相关的示例代码。
① func 定义函数 fn1为函数名
② 调用函数传入的类型
③ 函数的参数 类型
④ 函数返回类型
①func ②fn1[T any](③x int, y T) ④(int, T) {
return x, y
}
fn1[int](10, 8)
if else 流程控制
这一部分将详细说明如何使用if-else语句进行条件控制,并提供相应的示例代码。
func useIfElse(b bool) {
if b {
fmt.Println(1)
} else {
fmt.Println(0)
}
}
Switch流程控制
这一部分将介绍使用switch语句进行多条件判断的方法,并提供相应的示例代码。
// 选择控制
func useSwitch(b int) {
switch {
case b == 3:
fmt.Println("==3")
case b < 3:
fmt.Println("b<3")
case b > 3:
fmt.Println("b>3")
default:
fmt.Println("default")
}
}
for流程控制
在这一部分,将讨论如何使用for循环进行迭代控制,并提供相关的示例代码。
// 循环控制
func useFor() {
// for的关键字 Continue 跳出某次循环 Break 结束循环
arr := []int{1, 2, 3, 4}
// i index v item
{
for i := 0; i < len(arr); i++ {
if i == 2 {
fmt.Println("for循环跳出", i, arr[i])
continue
}
fmt.Println("for循环", i, arr[i])
}
}
// i index v item
{
for i, v := range arr {
if i == 2 {
fmt.Println("range循环结束", i, arr[i])
break
}
fmt.Println("range循环", i, v)
}
}
}
select流程控制
这一部分将介绍使用select语句管理通道通信的方法,并提供相应的示例代码。
// 通道控制
func useSelect() {
ch1 := make(chan string)
ch2 := make(chan string)
go func() {
time.Sleep(2 * time.Second)
ch1 <- "Hello"
}()
go func() {
time.Sleep(3 * time.Second)
ch2 <- "World"
}()
select {
case msg1 := <-ch1:
fmt.Println("Received:", msg1)
case msg2 := <-ch2:
fmt.Println("Received:", msg2)
case <-time.After(1 * time.Second):
fmt.Println("Timeout")
}
}
结论
通过本文档的阅读,读者应该对Go语言中的函数定义与使用以及各种流程控制语句有了更深入的理解。希望本文档能够帮助读者更好地学习和应用Go语言编程技术。
2024/3/3 ☀