Go语言基础知识

来源:互联网 发布:美中国际 知乎 编辑:程序博客网 时间:2024/05/22 14:42

数组声明

  • var balance [10] float32

Range使用

  • range作用于切片或数组,返回idex和value
  • range作用于map,返回key, value或key
  • range作用于字符,The first value is the starting byte index of the rune and the second the rune itself.
package mainimport "fmt"func main(){    nums := []int{2,3,4}    sum := 0    for _, num := range nums {        sum += num    }    fmt.Println("sum:", sum)    for i, num := range nums {        if num == 3 {            fmt.Println("index:", i)        }    }    kvs := map[string]string{"a": "apple", "b": "banana"}    for k,v := range kvs {        fmt.Printf("%s -> %s\n", k, v)    }    for k := range kvs {        fmt.Println("key:", k)    }    for i, c := range "go" {        fmt.Println(i, c)    }}

函数

func function_name( [parameter list] ) [return_types] {   函数体}
  • func:函数由 func 开始声明
  • function_name:函数名称,函数名和参数列表一起构成了函数签名
  • parameter list:参数列表
  • return_types:返回类型,函数返回一列值
package mainimport "fmt"func plus(a int, b int) int {    return a + b}func plusPlus(a, b, c int) int {    return a + b + c }//多值返回func vals()(int, int) {    return 3, 7}func sum(nums ...int) {    fmt.Println(nums, " ")}func main() {    res := plus(1, 2)    fmt.Println("1+2 =", res)    res = plusPlus(1, 2, 3)    fmt.Println("1+2+3 =", res)    a, b := vals()    fmt.Println(a)    fmt.Println(b)}

可变参数的函数

package mainimport "fmt"func sum(nums ...int) {    fmt.Print(nums, " ")    total := 0    for _, num := range nums {        total += num    }    fmt.Println(total)}func main() {    sum(1,2)    sum(1,2,3)    nums := []int{1,2,3,4}    sum(nums...)}

闭包

package mainimport "fmt"func intSeq() func() int {    i := 0     return func() int {        i += 1        return i    }}func main() {    // nextInt为一个函数,i的值为1    nextInt := intSeq()    fmt.Println(nextInt())    fmt.Println(nextInt())    fmt.Println(nextInt())    newInts := intSeq()    fmt.Println(newInts())}

递归

package mainimport "fmt"func fact(n int) int {    if n == 0 {        return 1    }    return n * fact(n-1)}func main() {    fmt.Println(fact(5))}
原创粉丝点击