1.循环语句
①结构:for init; condition; post { } //这种结构与C语言中for(;;)一样
例如: for a := 0; a < 10; a++ {
fmt.Printf("a 的值为: %d\n", a)
}
②结构:for condition { } //这种结构与while一样
for a < b {
a++
fmt.Printf("a 的值为: %d\n", a)
}
③结构:for 循环的 range 格式可以对 slice、map、数组、字符串等进行迭代循环。
for key, value := range oldMap { newMap[key] = value} //这种结构和python差不多。
例如:
for i,x:= range numbers {
fmt.Printf("第 %d 位 x 的值 = %d\n", i,x)
}
2.函数基础
函数结构
func function_name( [parameter list] ) [return_types] { 函数体} 其中[]中的指的是不一定是必要的。
func:函数由 func 开始声明
function_name:函数名称,函数名和参数列表一起构成了函数签名。
parameter list:参数列表,参数就像一个占位符,当函数被调用时,你可以将值传递给参数,这个值被称为实际参数。
return_types:返回类型
例子:
package main
import "fmt"
func swap(x, y string) (string, string) {
return y, x
}
func main() {
a, b := swap("Google", "Runoob")
fmt.Println(a, b)
}
函数闭包
结构:func getSequence() func() int { i:=0 return func() int { i+=1 return i }}
其原理是返回一个函数,而函数中的变量是静态的。
func main(){
/* nextNumber 为一个函数,函数 i 为 0 */
nextNumber := getSequence()
/* 调用 nextNumber 函数,i 变量自增 1 并返回 */
fmt.Println(nextNumber()) //返回1
fmt.Println(nextNumber()) //返回2
fmt.Println(nextNumber()) //返回3
}






网友评论