美文网首页
go语言流程和函数(五)

go语言流程和函数(五)

作者: guomq0402 | 来源:发表于2019-02-24 16:21 被阅读0次

    流程控制

    • if语句

    go语言的if语句不需要括号,go语言的if还可以在条件判断的地方声明变量,go语言中的goto语句和c语言中的用法一样

    func main() {
        var x int = 10
    
        //go 语言的if不需要括号
        if x > 10 {
            fmt.Println("x is greater than 10")
        } else {
            fmt.Println("x is less than 10")
        }
    
        //go 语言的条件判断的地方可以声明一个变量
        if y := 100; y > 100 {
            fmt.Println("y is greater than 100")
        } else {
            fmt.Println("y is less than 100")
        }
    
        //多语句
        if x > 10 {
            fmt.Println("x is greater than 10")
        } else if x == 10 {
            fmt.Println("x is 10")
        } else {
            fmt.Println("x is less than 10")
        }
    
        //go 语言中的goto语句与c语言中的使用方法相同
    }
    
    • for循环

    go语言中的for和c语言类似, break 和continue在这里也同样适用

    func main() {
        //go 语言的for和c语言的类似
        for i := 0; i < 100; i++ {
            fmt.Println("i is: ", i)
        }
    
        //go for语句可以省略表达式1 和 表达式3,用法同while
        x := 0
        for x < 1000 {
            fmt.Println("x is : ", x)
            x += 1
        }
    
        //同样go语言循环语句中也可以使用break 和 continue,用法和其它语言相同
    }
    
    • switch语句

    go语言中的switch的特色之处在于,go语言的case语句后自带break,如果不行case到某条语句后不想break可以使用关键字fallthrough

    func main() {
        //1.go语言的case语句后自带break语句,匹配到后自动跳出
        i := 2
        switch i {
        case 1:
            fmt.Println("i is 1")
        case 2:
            fmt.Println("i is 2")
        case 3:
            fmt.Println("i is 3")
        default:
            fmt.Println("none")
        }
    
        //2.可以使用fallthrough强制执行后面的语句
        switch i {
        case 1:
            fmt.Println("i is 1")
            fallthrough
        case 2:  //case到2后强制执行吓一跳case
            fmt.Println("i is 2")
            fallthrough
        case 3:
            fmt.Println("i is 3")
            fallthrough
        default:
            fmt.Println("none")
        }
    }
    

    函数

    • go语言函数支持多个返回值
    func funcName(input1 type1, input2 type2) (output1 type1, ouput2 type2) {
        //code
        //返回多个值
        return value1, value2
    }
    
    • 变参函数
      函数体中,变量arg是一个int的slice
    func func1(arg ...int) {
        for _, n := range arg {
            fmt.Println("arg is: ", n)
        }
    }
    
    • 传值与传指针
      go 语言的指针同样也是使用 & 和 *

    • defer
      函数中使用defer语句,当函数执行到最后时defer语句会按照逆序执行,最后函数返回

    • main 函数和init函数
      init 能够应用到所有的package,main函数只能应用到package main
      这两个函数在定义时不能有任何的参数和返回值,go语言会自动调用init和main函数

    相关文章

      网友评论

          本文标题:go语言流程和函数(五)

          本文链接:https://www.haomeiwen.com/subject/lqrisqtx.html