zoukankan      html  css  js  c++  java
  • 5. Go函数

    【定义函数】

    直接上一个栗子,Go语言定义函数:

    func add(a int, b int) int {
        return a + b
    }

    一目了然,还不太习惯Go语言的命名方式, 类型为什么要写到后面?

    【多个返回值】

    Go函数还可以返回多个值:

    func add(a int, b int)(int , int){
        return a, a + b
    }
    

    【命名返回值】

    func add(a int, b int) (c int) {
        c = a + b
        return
    }

    按照网上的说法,命名返回值就是,如上面的代码。函数会自动定义c,并且自动返回c。

    【多个相同类型】

    如果函数参数有多个相同的类型,那么写一个就可以了,命名返回值也适用。

    func add(a, b int) (c int) {
        c = a + b
        return
    }
    

    【空白符】

    函数返回多个参数,而我们只需要用到其中一个,其他参数不需要的时候可以使用空白符  '_',一个下划线。

    package main 
    
    import (
        "fmt"
    )
    
    func add(a, b int) (c, d int) {
        c = a + b
        d = a * b
        return
    }
    
    func main() {
        c, _ := add(3, 4)
        fmt.Printf("c = %v
    ", c)
    }

    【可变参数函数】

    可变参数函数很好理解了,类似C语言中的printf之类的,之后可以传入任意数量的参数。

    Go语言的定义是这样的,如果函数最后一个参数被记作 ...T ,这时函数可以接受任意个 T 类型参数作为最后一个参数。

    只有一最后一个参数被记作...T,才可以是可变参数,先上一个Demo理解一下。

    package main
    
    import (
        "fmt"
    )
    
    func my_print(values ...int) {
        for _, v := range values {
            fmt.Println(v)
        }
    }
    func main() {
        my_print(1, 2, 3)
    }
    

    my_print中的参数values相当于一个int切片,但是这里有个问题,只能传一样的类型吗?

  • 相关阅读:
    第四章
    第二章
    第三章
    第一章
    第十章心得
    第九章心得
    第八章心得
    第七章心得
    第六章心得
    第五章心得
  • 原文地址:https://www.cnblogs.com/hatsusakana/p/9810199.html
Copyright © 2011-2022 走看看