您的位置:首页 > 编程语言 > Go语言

Go语言基础知识

2017-10-10 15:24 495 查看

数组声明

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 main

import "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 main

import "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 main

import "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 main

import "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 main

import "fmt"

func fact(n int) int {
if n == 0 {
return 1
}
return n * fact(n-1)

}

func main() {

fmt.Println(fact(5))

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: