条件语句
- 条件语句不需要使用括号包含起来,
- 语句体的花括号是必须的,
- 左花括号必须与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)
}
花括号直接跟参数列表表示函数调用