go语言流程和函数(五)

流程控制

  • 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函数

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。